zoukankan      html  css  js  c++  java
  • 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))
    

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

  • 相关阅读:
    web架构
    网站开发的学习交流 系统架构 负载均衡
    数据库连接
    OpenCV4【12】边缘检测
    python基础_格式化输出(%用法和format用法)
    Python之telnetlib模块
    根据文字或图片来生成用于Banner输出的字符画
    Python3 range() 函数用法
    Python psutil cpu_percent调用说明
    @staticmethod和@classmethod的用法
  • 原文地址:https://www.cnblogs.com/wsjaizlp/p/13183912.html
Copyright © 2011-2022 走看看