《剑指offer》— JavaScript(34)第一个只出现一次的字符

第一个只出现一次的字符

题目描述

在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符,并返回它的位置。


思路

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

实现代码

function FirstNotRepeatingChar(str) {
    if (str.length == 0)
        return -1;

    var map = {};
    for (var i = 0; i < str.length; i++) {
        var charX = str[i]
        if (!map[charX]) {
            map[charX] = 1;
        } else {
            map[charX]++;
        }
    }

    for (var i = 0; i < str.length; i++) {
        var charY = str[i];
        if (map[charY ] == 1)
            return i;
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,766评论 18 399
  • 纽约时间比加州时间早三个小时, 但是加州时间并没有变慢。 有人22岁就毕业了, 但等了五年才找到稳定的工作! 有人...
    步六孤新晴阅读 348评论 0 0
  • 第一次接触到 Kindle Oasis 是一位同事在刚上市不久买的,到手的第一感觉就是轻,薄,手感极佳,从此念念不...
    陈新涛阅读 10,508评论 0 6
  • 一、看包装 1.书名:《会生气,你才会健康》 2.类别:心灵励志 3.作者:玛西亚·坎农 4.作者等级: 5.策划...
    胡小乙药师阅读 332评论 0 1