LeetCode刷题---哈希表---387
字符串中的第一个唯一字符
387. 字符串中的第一个唯一字符 - 力扣(LeetCode)
题目:
给定一个字符串 s
,找到 它的第一个不重复的字符,并返回它的索引 。如果不存在,则返回 -1
。
示例 1:
输入: s = "leetcode" 输出: 0
示例 2:
输入: s = "loveleetcode" 输出: 2
示例 3:
输入: s = "aabb" 输出: -1
提示:
1 <= s.length <= 105
s
只包含小写字母
自己的思路和代码:
思路:
我们可以对字符串进行两次遍历。
在第一次遍历时,我们使用哈希映射统计出字符串中每个字符出现的次数。在第二次遍历时,我们只要遍历到了一个只出现一次的字符,那么就返回它的索引,否则在遍历结束后返回 −1。
代码:
class Solution {
public:
int firstUniqChar(string s) {
unordered_map<char, int> count;
for (char c : s) {
count[c]++;
}
for (int i = 0; i < s.size(); i++) {
if (count[s[i]] == 1) {
return i;
}
}
return -1;
}
};