方法:使用哈希表存储频数
思路与算法
我们可以对字符串进行两次遍历。
在第一次遍历时,我们使用哈希映射统计出字符串中每个字符出现的次数。在第二次遍历时,我们只要遍历到了一个只出现一次的字符,那么就返回该字符,否则在遍历结束后返回空格。
c++:
class Solution {
public:
char firstUniqChar(string s) {
unordered_map<int,int>frequency;
for (char ch:s)
{
++frequency[ch];//统计每个字符出现的次数
}
for(int i = 0;i < s.size();i++)
{
if (frequency[s[i]] == 1){
return s[i];
}
}
return ' ';
}
};
python:
class Solution:
def firstUniqChar(self, s: str) -> str:
frequency = collections.Counter(s)
for i ,ch in enumerate(s):
if frequency[ch] == 1:
return ch
return ' '