当前位置 博文首页 > 中流击水,浪遏飞舟:哈希&&队列&&剑指 Offer 5
class Solution {
public:
char firstUniqChar(string s) {
vector<int>counts(26,0);
char ans;
bool t=true;
for(auto x:s){
counts[x-'a']++;
}
for(auto y:s){
if(counts[y-'a']==1){
ans=y;
t=false;
break;
}
}
return t?ans=' ':ans;
}
};
跟数组原理差不多,只不过用到了和哈希表的数据结构。
参考大佬的力扣题解:
面试题50. 第一个只出现一次的字符(哈希表 / 有序哈希表,清晰图解)
class Solution {
public:
char firstUniqChar(string s) {
unordered_map<char,int>counts;
for(auto x:s){
counts[x]++;
}
for(auto x:s){
if(counts[x]==1){
return x;
}
}
return ' ';
}
};