题目描述
blablabla
样例
blablabla
算法1
(哈希表,队列) $O(n)$
维护一个队列使得其中所有的元素都只存在一个,则队列头部则为第一个出现的数字
C++ 代码
//参考yxc
class Solution{
unordered_map<char, int>count;
queue<char>q;
public:
//Insert one char from stringstream
void insert(char ch){
if(++count[ch]>1)//如果ch 的值大于1了,
while(q.size() && count[q.front()] > 1) q.pop();//把所有的重复的都剔除掉
else q.push(ch);
}
//return the first appearence once char in current stringstream
char firstAppearingOnce(){
if(q.empty()) return '#';
return q.front();
}
};