题目链接
题目
在字符串中找出第一个只出现一次的字符。如输入'abaccdeff',则输出‘b’。
题解
哈希表
var firstUniqChar = function(s) {
var map = new Map();
for(let i=0; i < s.length; i++){
var cur = s.charAt(i);
if(map.has(cur)){
map.set(cur,false);
} else {
map.set(cur,true);
}
}
for([key,value] of map){
if(value){
return key;
}
}
return ' '
};
复杂度分析:
时间复杂度 O(N) : NNN 为字符串 arr 的长度;需遍历 arr 两轮,使用 O(N) ;HashMap 查找操作的复杂度为 O(1) ; 空间复杂度 O(1) : 由于题目指出 arr 只包含小写字母,因此最多有 26 个不同字符,HashMap 存储需占用 O(26)=O(1) 的额外空间。