解法1:哈希表
思想:
用哈希表(这里直接改进为vector存储,因为只有小写字母)来存储字母出现的次数,然后遍历得到第一个出现一次的数组。
复杂度:
●时间:O(N),遍历了两遍数组
●空间:O(1),vector大小26
代码:
class Solution {
public:
char firstUniqChar(string s) {
if(s.empty())
return ' ';
//26个小写字母
vector<int>vec_CharCount(26, 0);
for(char c : s)
vec_CharCount[c - 'a']++;
for(char c : s)
if(vec_CharCount[c - 'a'] == 1)
return c;
return ' ';
}
};