哈希表记录出现次数即可。
int FirstNotRepeatingChar(string str) {
if(str.size() == 0) return -1;
std::unordered_map<char, int> mp; // 存字符出现的次数
for(int i = 0; i < str.size(); i++){
//cpp string的[]返回是char类型
mp[str[i]]++;
}
// 基于mp 可以知道哪些字符只出现过一次
for(int i = 0; i < str.size(); i++){
if(mp[str[i]] == 1){
//说明当前的这个字符,只出现过一次 并且是第一个
return i;
}
}
return -1;
}