1、描述
在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。
示例:
s = “abaccdeff”
返回 “b”
s = “”
返回 " "
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/di-yi-ge-zhi-chu-xian-yi-ci-de-zi-fu-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2、关键字
字符串,第一次,出现一次
3、思路
第一次遍历字符串:hash统计出现的次数
再一次遍历字符串,根据hash的统计结果,把大于1频次的字符换成特殊字符,
第3次遍历字符串,把第一个不是特殊字符的字符返回
4、notes
没注意第一次,所以多交了几次
5、复杂度
时间:O(N)
空间:O( min(N,m))统计一共有多少个基字符(m个)
6、code
class Solution {
public:
char firstUniqChar(string s) {
unordered_map<char,int>mp;
for(auto t : s){
mp[t]++;
}
char res = ' ';
for(auto& c :s){
if(mp[c] > 1){
c = 'A';
}
}
for(auto c : s){
if(c !='A'){
res = c;
break;
}
}
return res;
}
};