• js判断一个字符串中出现次数最多的字符及次数


    最近面试总是刷到这个题,然后第一次的话思路很乱,这个是我个人思路 for循环里两个 if 判断还可以优化

        var maxLength = 0;
        var maxStr = '';
        var count = 1;
        var stringList = 'adsafsfgadsdaasssssaasssdfssss';
    
        //  首先对字符串进行排列,方便比较
        stringList = stringList.split('').sort();
     
        // 比较字符串相邻位置是否相同
        for (let i = 0; i < stringList.length; i++) {
          // 如果相同,说明字符串相同,让count +1
          if (stringList[i] == stringList[i + 1]) {
            ++ count;
            // maxLength是最大的出现个数,如果相邻个数大于maxLength则说明字符串个数比定义的最大个数大,则最大个数设置为它,最大值为单前的值
            if (count > maxLength) {
              console.log(count);
              
              maxLength = count;
              maxStr = stringList[i];
            }
          } else {
            count = 1
          }
        }
        console.log(‘出现次数最多’+maxStr,'出现次数最多个数' + maxLength);

    这是我个人的想法,然后第二种方法就是利用对象的key值不能重复这一特性实现

    function maxstringload(str) {
       var obj={};
        for(var i=0;i<str.length;i++){
            var key=str[i];//key中存储的是每一个字符串
            if(obj[key]){//判断这个键值对中有没有这个键
                obj[key]++;
            }else{
                obj[key]=1;
            }
        }
     
        var maxCount=0;//假设是出现次数最多的次数
        var maxString="";//假设这个字符串是次数出现最多的字符串
        for(var key in obj){
            if(maxCount<obj[key]){
                maxCount=obj[key];//保存最大的次数
                maxString=key;
            }
        }
        return "出现次数最多的字母:"+maxString+"出现了"+maxCount+"次";
    }
    console.log(maxstringload(stringList))
    

      两个方法都可实现判断一个字符串中出现次数最多的字符及次数  

  • 相关阅读:
    纳米丸穿透癌细胞(癌症)
    Linux生成动态库系统
    Unity3d在线游戏Socket通讯
    TCP/UDP差异
    Android 录音
    使用八种牛云存储解决方案ios7.1的app部署问题
    Android Studio如何设置自己主动提示代码
    QML Image得到的图片资源路径的详细信息
    大约php,mysql,html数字寻呼和文本分页2分页样式供大家参考
    基础总结篇之中的一个:Activity生命周期
  • 原文地址:https://www.cnblogs.com/wsjaizlp/p/13183912.html
Copyright © 2020-2023  润新知