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

  兩個方法都可實現判斷一個字符串中出現次數最多的字符及次數  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM