[LeetCode]387. First Unique Character in a String
题目描述
思路
遍历,对于每个字符,找到第一个相同的字符就终止
找到第一个满足条件的字符,终止循环
update1
用map计数,然后遍历字符串,当字符满足个数为1时,返回。若没有,返回-1
代码
class Solution {
public:
int firstUniqChar(string s) {
int len = s.size();
int result = -1;
for (int i = 0; i < len; ++i){
bool flag = true;
for (int j = 0; j < len; ++j){
if (s[i] == s[j] && i != j) {
flag = false;
break;
}
}
if (flag) {
result = i;
break;
}
}
return result;
}
};
update1
class Solution {
public:
int firstUniqChar(string s) {
int len = s.size();
unordered_map<char, int> charMap;
for (auto &p : s){
charMap[p]++;
}
for (int i = 0; i < len; i++){
if (charMap[s[i]] == 1){
return i;
}
}
return -1;
}
};