LeetCode題解:387.字符串中的第一個唯一字符

字符串中的第一個唯一字符

一、LeetCode題解

瞧一瞧(求star!)

二、算法題

題目

給定兩個字符串 s 和 t,它們只包含小寫字母。

字符串 t 由字符串 s 隨機重排,然後在隨機位置添加一個字母。
請找出在 t 中被添加的字母。

示例:

輸入:
s = "abcd"
t = "abcde"

輸出:e

解釋:
'e' 是那個被添加的字母。

解法一 (哈希)

思路

  • key-value的遍歷存儲字符串上的每一個字母
    • key記錄字母,value記錄下標
    • 如果第二次出現,則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
};

結果

在這裏插入圖片描述

關於我

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章