美文网首页
34-第一个只出现一次的字符

34-第一个只出现一次的字符

作者: 马甲要掉了 | 来源:发表于2020-05-24 23:09 被阅读0次

    题目描述

    在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数)

    思路

    新建一个对象,其中key用来存放字符,value用来存放该字符出现的次数;
    第一次循环,将所有字符和对应出现的次数存放在obj中,时间复杂度为0(n);
    第二次循环找到value为1的字符所在的位置,并返回。

    代码如下

    function FirstNotRepeatingChar(str)
    {
        // write code here
        let obj = {};
        for(let i=0;i<str.length;i++){
            let s = str[i]; 
            if(!obj[s]){
                obj[s] = 1;
            }else{
                obj[s]++;
            }
        }
        for(let i=0;i<str.length;i++){
            let s = str[i]; 
            if(obj[s]===1){
                return i;
            }
        }
        return -1;
        
    }
    

    相关文章

      网友评论

          本文标题:34-第一个只出现一次的字符

          本文链接:https://www.haomeiwen.com/subject/fbwsahtx.html