题解 | #字符流中第一个不重复的字符#
字符流中第一个不重复的字符
http://www.nowcoder.com/practice/00de97733b8e4f97a3fb5c680ee10720
- 用队列和map相互配合的方式做题。
- 其余重点看注释即可。
class Solution { public: //Insert one char from stringstream queue<char> q; unordered_map<char,int> mp; void Insert(char ch) { // 如果是第一次出现, 则添加到队列中 if(mp.find(ch)==mp.end()){ q.push(ch); } // 不管是不是第一次出现,都进行计数 mp[ch]++; } //return the first appearence once char in current stringstream char FirstAppearingOnce() { while(!q.empty()){ char c = q.front(); // 拿出头部,如果是第一次出现,则返回 if(mp[c]==1){ return c; } // 不是第一次出现,则弹出,然后继续判断下一个头部 else{ q.pop(); } } return '#'; } };
剑指Offer 文章被收录于专栏
剑指offer的解析结合