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