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))
    

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

  • 相关阅读:
    1、vsCode插件开发流程入门
    node中MySQL的安装与使用
    sublime使用插件
    Node.js基础知识梳理
    第5章-11 字典合并 (40分)
    我的考研心得-zju-se
    解决 重启tomcat上传的文件被自动删除或未重启过段时间也自动删除(deloy path)
    org.hibernate.InstantiationException: No default constructor for entity
    UE.delEditor is not a function问题原因及解决方法
    javaweb开发过程中遇到的问题
  • 原文地址:https://www.cnblogs.com/wsjaizlp/p/13183912.html
Copyright © 2011-2022 走看看