剑指 Offer 50. 第一个只出现一次的字符(vector、unordered_map)

vector 

class Solution {
public:
    char firstUniqChar(string s) {
         int len = s.size();
        vector<int> c(26);
        for(int i=0;i<len;++i){
            c[s[i] - 'a']++;
        }
        for(int i=0;i<len;++i){
            if(c[s[i] - 'a'] == 1)
            return s[i];
        }
    return ' ';

    }
};

unordered_map

class Solution {
public:
    char firstUniqChar(string s) {
        unordered_map<char,int> m;
        for(auto &c:s){
            m[c]++;
        }
        for(auto &c:s){
            if(m[c] == 1)
            return c;
        }
    return ' ';

    }
};

猜你喜欢

转载自blog.csdn.net/intmain_S/article/details/121557649