字符串中的第一個唯一字符
一、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
};
結果
關於我
- decs: 19年畢業的前端開發一枚,沉迷Js
- E-mail: [email protected]
- 個人博客: CSDN
- GitHub: 傳送門