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

问题描述

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

案例:

s = "leetcode"
返回 0.

s = "loveleetcode",
返回 2.
 

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

代码

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

结果:

执行用时 :32 ms, 在所有 C++ 提交中击败了83.83%的用户
内存消耗 :10.6 MB, 在所有 C++ 提交中击败了100.00%的用户
posted @ 2020-03-28 08:22  曲径通霄  阅读(143)  评论(0编辑  收藏  举报