zoukankan      html  css  js  c++  java
  • 《剑指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;
        }
    }
    
  • 相关阅读:
    java 异常练习题1
    java 异常练习题
    java 抽象类
    java 接口练习题6
    java 接口练习题5
    java 接口练习题4
    java 接口练习题3
    java接口练习题2
    java 接口练习题1
    java 泛型
  • 原文地址:https://www.cnblogs.com/echovic/p/6604515.html
Copyright © 2011-2022 走看看