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

2018-06-23 23:12:15来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

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

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

    //判断一个随意字符串中出现次数最多的字母,并判断出出现过几次
        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);

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:[ASP.NET] 如何利用Javascript分割檔案上傳至後端合併

下一篇:Spring.Net简单用法