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

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

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

class Solution {
  public:
    vector<char> v;        // 存储字符流
    vector<char> first;    // 存储当前只出现一次的字符
    //Insert one char from stringstream
    void Insert(char ch) {
        v.push_back(ch);
        if (v.size() == 1) {
            first.push_back(ch);
        } else {
            for (int i = 0; i < v.size() - 1; ++i) {
                if (ch == v[i]) {
                    // 删除指定值的项
                    first.erase(remove(first.begin(), first.end(), ch), first.end());
                    break;
                }
                if (i == v.size() - 2) {
                    first.push_back(ch);
                }
            }
        }
    }
    //return the first appearence once char in current stringstream
    char FirstAppearingOnce() {
        if (first.size() == 0) {
            return '#';
        } else {
            return first.front();
        }
    }
};

全部评论

相关推荐

点赞 评论 收藏
分享
死在JAVA的王小美:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,我也是,让我免了一轮,但是硬气拒绝了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务