C++ 双map解法

第一个只出现一次的字符

http://www.nowcoder.com/questionTerminal/1c82e8cf713b4bbeb2a5b31cf5b0417c

原理是设置两个map,一个map保存字符的出现次数,一个map保存每个字符的初始地址。

int FirstNotRepeatingChar(string str) {
    if(str.size() <=0)
        {
            return -1;
        }
        map<char,int>res;//保存出现次数
        map<char,int>address;//保存初始地址
        int lenth = str.size();
        for(int i = 0;i<lenth;i++)
        {
            if(res.find(str[i]) != res.end())
            {
                res[str[i]]++;
            }
            else
            {
                res[str[i]] = 1;
                address[str[i]] = i;
            }
        }
        for(auto i: str)//对str遍历找到第一个出现次数为一的字符
        {
            if(res[i] == 1)
            {
                return address[i];
            }
        }
    }
全部评论

相关推荐

03-03 19:08
已编辑
电子科技大学 C++
虚闻松声:简历还是不错。 说两点 1. 正确书写专有名词。如MySQL、Python等。 2. 清晰展示项目内容。最好以列表形式分大的模块展示。 建议就是,1. 刷完 hot100 2. 适当结合AI CV、求职等咨询,欢迎私信交流。
点赞 评论 收藏
分享
生命诚可贵:先不说内容怎么样 排版就已经太差劲了 第一眼看不到重点,第二眼已经没有再看的耐心了, 篇幅占的太满了 字体不要用灰色 观感不好 想重点突出的黑色加粗就可以了 多列要点 少些大段的句子 项目经历把项目用的技术要点列出来,光写个python plc什么的太宽泛了 自我评价也有点偏多
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务