字符流中第一个不重复的字符

实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。 如果当前字符流没有存在出现一次的字符,返回#字符。字符只能一个接一个从字符流中读出来。我们可以定义一个数据容器来保存字符在字符流中的位置。当一个字符第一次从字符流中读出来时,把它在字符流中的位置保存到数据容器里。当这个字符再次从字符流中被读出来时,那么它就不是第一次不重复的字符,也就可以被忽略了。这时把它在数据容器里保存的值更新成一个特殊的值(比如一个负值)。这个数据容器可以用哈希表来实现。用字符的ASII码作为哈希表的键值,而把字符对应的位置作为哈希表的值。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容