题目描述
在一个字符串( 0 < = 0<= 0<=字符串长度 < = 10000 <=10000 <=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 − 1 -1 −1(需要区分大小写).
思路:用 h a s h m a p hashmap hashmap存储字符, k e y key key为字符, v a l u e value value为出现次数;然后遍历,如果某个字符只出现一次则返回下标;找不到则返回-1
class Solution {
public:
int FirstNotRepeatingChar(string str) {
if (str.empty())
return -1;
map<char, int> mp;
for (int i = 0; i < str.size(); ++i)
mp[str[i]]++;
for (int i = 0; i < str.size(); ++i) {
if (mp[str[i]] == 1)
return i;
}
return -1;
}
};