描述:
在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。
示例 1:
输入:s = "abaccdeff"
输出:'b'
示例 2:
输入:s = ""
输出:' '
限制:
0 <= s 的长度 <= 50000
思路:
哈希表,把字符都存进哈希表中,然后遍历查看哈希表中那个字母是为1的,就是第一个,返回其下标,否则未找到,返回-1;
class Solution {
public:
int FirstNotRepeatingChar(string str) {
unordered_map<char, int> mp;
//统计每个字符出现的次数
for(int i = 0; i < str.length(); i++)
mp[str[i]]++;
//找到第一个只出现一次的字母
for(int i = 0; i < str.length(); i++)
if(mp[str[i]] == 1)
return i;
//没有找到
return -1;
}
};