题意:找出给定字符串中出现的第一个 仅出现一次的 元素,不存在仅出现一次的元素返回-1。
solution 1:数组模拟hash。这是昨天学到的,秀一波。其实要写在一个循环里应该也是可以的,因为直观的想:只需要遍历一遍数组就可以知道答案。但是这种方法也足够好了。
class Solution {
public:
int firstUniqChar(string s) {
int c[26] = {0}; // count
for ( auto n : s ) {
c[n-'a']++;
}
for ( auto n : s ) {
if ( c[n-'a'] == 1 ) {
return s.find(n);
}
}
return -1;
}
};
submission: