1. 题目描述
题目链接:387. 字符串中的第一个唯一字符
2. 解题思路
定义一个存储 26 个元素的数组,用来统计 26 个字母在字符串中出现的次数。
然后再遍历一次字符串,寻找字符串中第一个只出现一次的字母,并返回它的索引,若不存在,则返回 -1。
3. 代码实现
代码示例
class Solution {
public:
int firstUniqChar(string s) {
int count[26] = { 0 };
//统计26个字母在字符串中出现的次数
for (auto ch : s) {
count[ch - 'a']++;
}
//寻找字符串中的第一个只出现一次字母
for (int i = 0; i < s.size(); ++i) {
if (count[s[i] - 'a'] == 1) {
return i;
}
}
return -1; //不存在则返回-1
}
};