字符流中第一个出现一次的字符

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

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;
};
全部评论

相关推荐

爱吃烤肠的牛油最喜欢...:50K是ssp了估计,ssp的人家多厉害都不用说,每年比例大概在百分之5左右
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务