美文网首页LeeCode题目笔记
2019-09-10 字符串中的第一个唯一字符

2019-09-10 字符串中的第一个唯一字符

作者: Antrn | 来源:发表于2019-09-28 11:10 被阅读0次

给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。

案例:

s = "leetcode"
返回 0.

s = "loveleetcode",
返回 2.

注意事项:您可以假定该字符串只包含小写字母。

思路

建立一个map<char int>,存放每个字符出现的次数。
总共遍历两次字符串,第一遍先记录每个字符在字符串中的出现次数,第二次从头查找 第一次出现次数为一的字符所在的位置返回即可。

C++
class Solution {
public:
    int firstUniqChar(string s) {
        map<char, int> m;
        for(int i=0;i<s.size();i++){
            if(m.find(s[i])!=m.end()){
                m[s[i]] = m[s[i]]+1;
            }else{
                m.insert(pair<char, int>(s[i], 1));
            }
        }
        for(int i=0;i<s.size();i++){
            if(m[s[i]] == 1){
                return i;
            }
        }
        return -1;
    }
};

相关文章

网友评论

    本文标题:2019-09-10 字符串中的第一个唯一字符

    本文链接:https://www.haomeiwen.com/subject/zjfbyctx.html