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

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

https://www.nowcoder.com/practice/00de97733b8e4f97a3fb5c680ee10720

#include <unordered_map>
class Solution {
 public:
  queue<char> qu;
  unordered_map<char, int> umap;
  //Insert one char from stringstream
  void Insert(char ch) {
    if (umap.find(ch) == umap.end()) {
      umap.insert({ch, 1});
      qu.push(ch);
    } else {
      umap[ch]++;
    }
  }
  //return the first appearence once char in current stringstream
  char FirstAppearingOnce() {
    int i = 0;
    int qsize = qu.size();
    while (i < qsize) {
      char front_value = qu.front();
      if (umap[front_value] != 1) {
        qu.pop();
        i++;
        continue;
      } else {
        return front_value;
      }
      i++;
    }
    return '#';
  }

};

全部评论

相关推荐

10-24 11:10
山西大学 Java
若梦难了:哥们,面试挂是很正常的。我大中厂终面挂,加起来快10次了,继续努力吧。
点赞 评论 收藏
分享
11-08 10:39
门头沟学院 C++
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务