• 面试题的分享有待我们大家的征服


    题目:给定你任意一个字符串,让你写出一个算法,求算出该字符串中出现次数最多的一个字符,并将其结果输出。

      解析:这是其中一种比较简单的写法,希望大家记住它。

        //判断一个随意字符串中出现次数最多的字母,并判断出出现过几次
            var str = "saidhsd,pmgmtpmrpashdoasdnassdsjaoiosdnasndasnd";
            var join = {};//定义一个对象
            for (var i = 0; i < str.length; i++) {
                //判断该字符串截取出来的这一个字符是不是在join对象中存在{“a”,1}之后有a的话就进行++数量
                if (!join[str.charAt(i)]) {
                    //如果不存在,则以该单字符作为join对象的键值,将其values赋值为1
                    join[str.charAt(i)] = 1;
                } else {
                    //如果存在,则找到该键值对应的value值 将其自增
                    join[str.charAt(i)]++;
                }
            }
    
            var max = 0;//定义一个最大值,用于保存出现次数最多的字符的次数
            var maxStr = "";//用于保存出现次数最多的那个字符
            //打擂算法循环输出join中保存的数据
            for(var item in join){
                //每一个item都代表着一个join对象的键值(也就是字符)
                if(join[item]>max){
                    max = join[item];
                    maxStr = item;
                }
            }
            alert(maxStr+"字符出现的次数为:"+max);
  • 相关阅读:
    为什么需要防火墙?
    比较流行的前端框架
    java基础面试题
    单列模式
    简单而且好用的随机验证码
    java中的九大隐藏变量.
    搭建Disuz论坛社区
    BZOJ 1006 [HNOI2008]神奇的国度
    COJ 0252 HDNOIP201304阻断传染
    BZOJ 1005 [HNOI2008]明明的烦恼
  • 原文地址:https://www.cnblogs.com/yejiaojiao/p/5557556.html
Copyright © 2020-2023  润新知