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


网友评论