Solution:
This is an easy level question. We may use the hash map to count the time of appearances for each element. Then find the first element with count number of 1 (or the total number of this kind of element is 1). Since all the letters are in lower case, we can use a 26-letter long vector, instead of a hashmap. See code below.
Code:
class Solution {
public:
int firstUniqChar(string s) {
int res = -1, n = s.size();
vector<int> count(26, 0);
for(auto a:s) ++count[a-'a'];
for(int i=0; i<n; ++i){
if(count[s[i]-'a'] == 1) {
res = i;
break;
}
}
return res;
}
};
No comments :
Post a Comment