c_cpp 387.字符串中的第一个独特字符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 387.字符串中的第一个独特字符相关的知识,希望对你有一定的参考价值。

//Runtime: 64 ms, faster than 44.53%
//Memory Usage: 13.5 MB, less than 49.72%

class Solution {
public:
    int firstUniqChar(string s) {
        unordered_map<char,int> set;
        
        
        for(int i = 0;i < s.length();++i)
            set[s[i]]++;
        
        for(int i = 0;i < s.length();++i){
            if(set[s[i]] == 1)
                return i;
        }
        return -1;
    }
};
//Runtime: 72 ms, faster than 31.78%
//Memory Usage: 13.7 MB, less than 26.44%

class Solution {
public:
    int firstUniqChar(string s) {
        unordered_map<char, pair<int, int>> m;
        int idx = s.size();
        for (int i = 0; i < s.size(); i++) {
            m[s[i]].first++;
            m[s[i]].second = i;
        }
        for (auto &p : m) {
            if (p.second.first == 1) idx = min(idx, p.second.second);
        }
        return idx == s.size() ? -1 : idx;
    }
};

以上是关于c_cpp 387.字符串中的第一个独特字符的主要内容,如果未能解决你的问题,请参考以下文章

golang 387字符串中的第一个唯一字符

题目地址(387. 字符串中的第一个唯一字符)

leetcode-387-字符串中的第一个唯一字符

leetcode python 387. 字符串中的第一个唯一字符 383. 赎金信

力扣387.字符串中的第一个唯一字符0705

LeetCode|387. 字符串中的第一个唯一字符