剑指-字符流中第一个不重复的字符 O(n)

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

http://www.nowcoder.com/questionTerminal/00de97733b8e4f97a3fb5c680ee10720

class Solution
{
public:
    //仿照hash表实现,str存储插入的字符,hash[256]存储插入字符的个数
    string str;
    char hash[256] = {0};
    void Insert(char ch)
    {
        str += ch;
        hash[ch]++;
    }
    
    //遍历插入的字符(按照插入的顺序,可方便的得到第一个),hash表中个数为1的输出,否则返回#
    char FirstAppearingOnce()
    {
        for(char ch : str)
            if(hash[ch] == 1)
                return ch;
        return '#';
    }
};
思路来自:P_BIRD 大佬
全部评论
发挥你聪明的大脑想一想,ch是以什么形式存储的呢?(ASCII)会不会发生char向整数类型的转化呢?
1 回复 分享
发布于 2020-04-23 00:47
厉害了,赞牛皮
点赞 回复 分享
发布于 2020-06-15 18:28
请问hash[ch]++这句代码里,为什么字符类型可以作为索引呢?
点赞 回复 分享
发布于 2020-04-20 22:05

相关推荐

评论
18
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务