📅  最后修改于: 2023-12-03 15:12:42.243000             🧑  作者: Mango
给定一个字符串s,它由数字和小写字母组成。找到字符串中第一个不重复的字符,并返回它的索引。如果不存在,则返回-1。
以下是函数的C++签名:
int firstUniqChar(string s);
一个字符串s,由数字和小写字母组成,长度范围为[1,100000]
返回第一个不重复字符的索引,如果不存在,则返回-1
Input: s = "leetcode"
Output: 0
Input: s = "loveleetcode"
Output: 2
Input: s = "aabb"
Output: -1
我们可以使用哈希表来解决该问题。我们可以遍历字符串s两次。第一次遍历字符串s时,将每个字符的出现次数存储到一个哈希表中。第二次遍历字符串s时,对于每个字符,如果它的出现次数为1,则返回它的索引即可。
以下为我用C++写的代码片段,可供参考。
int firstUniqChar(string s)
{
unordered_map<char, int> charCount;
int n = s.size();
for (int i = 0; i < n; i++) {
charCount[s[i]]++;
}
for (int i = 0; i < n; i++) {
if (charCount[s[i]] == 1) {
return i;
}
}
return -1;
}
以上就是本题的全部内容,如果您有任何疑问或建议,请告诉我。