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