题解 | 字符流中第一个不重复的字符
字符流中第一个不重复的字符
https://www.nowcoder.com/practice/00de97733b8e4f97a3fb5c680ee10720
class Solution
{
public:
//Insert one char from stringstream
void Insert(char ch) {
if(canNotInsert.find(ch)==canNotInsert.end())
{
if(used.find(ch)==used.end())
{
used.insert({ch, cnt++});
}
else
{
used.erase(ch);
canNotInsert.insert(ch);
}
}
}
//return the first appearence once char in current stringstream
char FirstAppearingOnce() {
char res = '#';
int minT = 10000;
for(auto item:used)
{
if(item.second<minT)
{
res = item.first;
minT = item.second;
}
}
return res;
}
unordered_map<char,int> used;
unordered_set<char> canNotInsert;
char val;
int cnt;
};
