#include<iostream>
#include<unordered_map>
using namespace std;
class Solution {
unordered_map<char,int> a;//哈希表储存每个字符的出现次数 unordered更快
public:
char firstUniqChar(string s) {
int max=0;
for(int i=0;i<s.size();i++)
{
a[s[i]]++;//某个字符出现了 次数+1
}
for(int i=0;i<s.size();i++)
{
if(a[s[i]]==1)//遍历整个哈希表 如果次数为1 返回这个字符即可
return s[i];
}
return ' ';
}
};
// class Solution {
// unordered_map<char,int> a;
// vector <char>keys;多用一个vector储存字符顺序 可以再降低一点复杂度
// public:
// char firstUniqChar(string s) {
// int max=0;
// for(int i=0;i<s.size();i++)
// {
// if(a[s[i]]==0)
// keys.push_back(s[i]);
// a[s[i]]++;
// }
// for(auto c:keys)
// {
// if(a[c]==1)
// return c;
// }
// return ' ';
// }
// };
剑指 Offer 50. 第一个只出现一次的字符
最新推荐文章于 2023-08-02 09:56:33 发布