字符流中第一个出现一次的字符
字符流中第一个不重复的字符
http://www.nowcoder.com/questionTerminal/00de97733b8e4f97a3fb5c680ee10720
该题的重点是要找到字符流中第一个出现一次的字符。由于字符流是动态变化的,所以需要一个哈希表来记录字符流中所有字符出现的次数,同时使用队列来维护字符的先后顺序。
代码如下:
class Solution
{
public:
//Insert one char from stringstream
void Insert(char ch)
{
stream.push(ch);
char_count[ch]++;
}
//return the first appearence once char in current stringstream
char FirstAppearingOnce()
{
while (!stream.empty() && char_count[stream.front()] != 1) {
stream.pop();
}
return stream.empty()? '#' : stream.front();
}
private:
queue<char> stream;
map<char, int> char_count;
};
查看7道真题和解析