题目链接:387. 字符串中的第一个唯一字符 - 力扣(LeetCode)
class Solution {
public:
int firstUniqChar(string s) {
unordered_map<char, int> mapch;
for(auto c : s)
{
mapch[c]++;
}
for(int i = 0; i < s.size(); i++)
{
if(mapch[s[i]] == 1)
{
return i;
}
}
return -1;
}
};
这个题目看似简单,实际上很考验你对于字符数组的理解,说白了,这个题目中档,一开始我用的是遍历和标记,最后发现不行。换了unordered_map这个方法,这个方法也是映射,也就是遍历一遍给的字符,把单独的字符在char映射到int中增加1,然后在遍历一遍字符,看看哪个是第一个出现且char映射的int数字只有1,这个就是第一个唯一字符。

被折叠的 条评论
为什么被折叠?



