387. 字符串中的第一个唯一字符
描述
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
示例:
s = “leetcode”
返回 0
s = “loveleetcode”
返回 2
分析
找出第一个不重复的字符,可以使用map记录字符串中字符的出现次数,遍历一遍得到每个字符出现的次数,然后在查找第一个map的值为1时的字符。
c++代码
class Solution {
public:
int firstUniqChar(string s) {
map<char, int> map;
for(int i = 0 ; i < s.size(); i++){
map[s[i]]++;
}
int res = -1;
for(int i = 0; i < s.size();i++){
if(map[s[i]] == 1)
{
res = i;
break;
}
}
return res;
}
};
复制度分析
时间复杂度O(n),n是字符串s的长度。