当前位置 博文首页 > 余光的博客:LeetCode题解:387.字符串中的第一个唯一字符

    余光的博客:LeetCode题解:387.字符串中的第一个唯一字符

    作者:[db:作者] 时间:2021-09-03 18:23

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

    一、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标记为特殊字符
    • 第二次遍历哈希表,找到第一个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: webbj97@163.com
    • 个人博客: CSDN
    • GitHub: 传送门
    cs