题目链接:https://leetcode-cn.com/problems/first-unique-character-in-a-string/
题目如下:
class Solution {
public:
int firstUniqChar(string s) {
//tip:
//1、哈希表中的元素不能顺序遍历,只能全部比较再找出min
//2、字符串string的长度可以用.size()
//3、和次数扯到关系的,常用哈希
unordered_map<char,int> hash;
int length=s.size();
for(int i=0;i<length;i++){
if(hash.count(s[i])){
hash[s[i]]=-1;
}
else{
hash[s[i]]=i;
}
}
int min_pos=length;
for(auto [_,pos] : hash){//重要标记点
if(pos!=-1&&pos<min_pos){
min_pos=pos;
}
}
if(min_pos==length) min_pos=-1;
return min_pos;
}
};