leetcode 387. 字符串中的第一个唯一字符  easy

leetcode 387. 字符串中的第一个唯一字符  easy       

题目描述:

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

案例:

s = "leetcode"
返回 0.

s = "loveleetcode",
返回 2.

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

解题思路:

先遍历一遍字符串,统计字符出现的次数(用哈希表),然后再遍历字符串,同时查表,找到第一个出现次数为1的字符,返回其位置即可

代码:

class Solution {
public:
    int firstUniqChar(string s) {
        if(s.empty())
            return -1;
        unordered_map<char,int> dict;
        for(auto c:s)
            ++dict[c];
        for(int i=0;i<s.size();++i)
            if(dict[s[i]]==1)
                return i;
        return -1; // 没找到
    }
};

版权声明:本文为speargod原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。