给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
示例:
s = "leetcode"
返回 0
s = "loveleetcode"
返回 2
提示:你可以假定该字符串只包含小写字母。
题目链接:https://leetcode-cn.com/problems/first-unique-character-in-a-string/
思路
先记录所有字符出现的次数,然后再取第一个次数为1的字符位置。
class Solution {
public:
int firstUniqChar(string s) {
if(s.size()==1) {
return 0;
}
vector<int> rec(26, 0);
for(int i=0; i<s.size(); ++i){
int idx = s[i] - 'a';
++rec[idx];
}
for(int i=0; i<s.size(); ++i){
int idx = s[i] - 'a';
if(rec[idx]==1){
return i;
}
}
return -1;
}
};