题解 | 字符流中第一个不重复的字符
字符流中第一个不重复的字符
https://www.nowcoder.com/practice/00de97733b8e4f97a3fb5c680ee10720
#include <map>
#include <queue>
class Solution
{
public:
//Insert one char from stringstream
queue<char> q;
map<char, int> mp;
void Insert(char ch) {
mp[ch] ++;
if ( mp[ch] == 1 ) {
q.push(ch);
} // 维护哈希表判断是否只出现一次
while ( !q.empty() && mp[q.front()] != 1 ) {
q.pop();
} // 维护队列找出符合条件的第一个字符
}
//return the first appearence once char in current stringstream
char FirstAppearingOnce() {
return q.empty() ? '#' : q.front();
}
};

