面试题50. 第一个只出现一次的字符

要求:rt
思路:存索引第二次不用遍历字符串

class Solution {
public:
    char firstUniqChar(string s) {
        unordered_map<int,int> m;
        for(int i=0;i<s.length();++i){
            if(m.count(s[i]))m[s[i]]=-1;
            else m[s[i]]=i;
        }
        int minval=s.length()+1;
        for(auto [key,val]:m){
            if(val!=-1&&val<minval)
                minval=val;
        }
        return minval==s.length()+1 ? ' ' : s[minval];
    }
};

你可能感兴趣的:(哈希表,leetcode,哈希算法,散列表)