题目:387. 字符串中的第一个唯一字符
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
示例:
s = “leetcode”
返回 0
s = “loveleetcode”
返回 2
提示:你可以假定该字符串只包含小写字母。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/first-unique-character-in-a-string
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题解
遍历第一遍字符串,利用散列表进行重复字符的统计;然后再遍历一遍字符串,找到第一个不重复的字符。
由于本题字符串只包含小写字母,因此可以直接利用数组统计重复字符。
代码
class Solution {
public:
int firstUniqChar(string s) {
vector<int> array(26, 0);
for (auto c: s) {
array[c-'a'] += 1;
}
for (int i = 0; i< s.length(); i++) {
if(array[s[i]-'a'] == 1) {
return i;
}
}
return -1;
}
};