字符串中的第一个唯一字符
一、LeetCode题解
瞧一瞧(求star!)
- LeetCode题解Javascript版本:Gitbook版本传送门
- LeetCode题解Javascript版本:CSDN传送门
- 前端进阶笔记:Gitbook传送门
二、算法题
题目
给定两个字符串 s 和 t,它们只包含小写字母。
字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。
请找出在 t 中被添加的字母。
示例:
输入:
s = "abcd"
t = "abcde"
输出:e
解释:
'e' 是那个被添加的字母。
解法一 (哈希)
思路
- key-value的遍历存储字符串上的每一个字母
- key记录字母,value记录
下标
- 如果第二次出现,则value标记为
特殊字符
- key记录字母,value记录
- 第二次遍历哈希表,找到第一个value
不是特殊字符
的即可
代码
var firstUniqChar = function(s) {
var obj = {}
for(let i = 0; i < s.length; i++){
if(!obj[s[i]] && obj[s[i]] !== 0){
obj[s[i]] = i
}else{
obj[s[i]] = 'unone'
}
}
for(let key in obj){
if(obj[key] !== 'unone'){
return obj[key]
}
}
return -1
};