题解 | 字符流中第一个不重复的字符

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

https://www.nowcoder.com/practice/00de97733b8e4f97a3fb5c680ee10720?tpId=265&tqId=39269&rp=1&ru=/exam/oj/ta&qru=/exam/oj/ta&sourceUrl=%2Fexam%2Foj%2Fta%3Fpage%3D1%26tpId%3D13%26type%3D265&difficulty=undefined&judgeStatus=undefined&tags=&title=

class Solution
{
private:
    string caseout;
    char candidate;
    //可依据官方题解将记录顺序的vector化为queue,减少需替换candidate时的遍历次数
    //https://blog.nowcoder.net/n/23f5c7b86af64c62b811c2e9ec2cf5b1
    vector<char> MyVec;
    unordered_map<char,int> MyMap;

public:
    Solution(){
        caseout="";
        candidate='#';
    }

  //Insert one char from stringstream
    void Insert(char ch) {
        MyMap[ch]++;
        MyVec.push_back(ch);
        if((candidate!='#'&&ch!=candidate)||(candidate=='#'&&MyMap[ch]!=1)){
            return;
        }
        if(candidate=='#'&&MyMap[ch]==1){
            candidate = ch;
            return;
        }
        if(candidate!='#'&&ch==candidate){
            for(auto VecCh : MyVec){
                if(MyMap[VecCh]==1){
                    candidate = VecCh;
                    return;
                }
            }
            candidate = '#';
            return;
        }
    }
  //return the first appearence once char in current stringstream
    char FirstAppearingOnce() {
        //caseout += candidate;
        //caseout.append(1,candidate);
        return candidate;
    }
};

全部评论

相关推荐

09-08 17:17
同济大学 Java
狗不理fe:里面的人劝一句,别来虾,我们部门24校招生淘汰率30%,还有一些人说有一年保护期,不可能!!!
我的秋招日记
点赞 评论 收藏
分享
09-28 22:01
已编辑
广西科技大学 IT技术支持
合适才能收到offe...:找桌面运维?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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