JSは1文字列の中で最も多く出現した文字を判断して回数を統計する

12433 ワード

タイトル
1つの関数を書いて、1つの文字列の中で最も多くの文字が現れたことを判断し、この文字が現れた回数を統計します.たとえば、「daskljahiagnaknscsjdwfanalvnahdpwod」という文字列があります.
解題方法
1-遍歴比較
var str = "daskljahiagnaknscsjdwfanalvnahdpwod";

function max() {
     
  var o = {
     };
  for (var i = 0; i < str.length; i++) {
     
      //     
    var item = str.charAt(i);
    if (o[item]) {
     
      o[item]++;
    } else {
     
      o[item] = 1;
    }
  }
  var max = 0; //     
  //           
  for (var key in o) {
     
    if (max < o[key]) {
     
      max = o[key];
      var tmp;
      tmp = key;
    }
  }
  console.log("          :" + tmp + "     :" + max);
}

max(str);

実行結果
出現回数が最も多い文字は:a出現回数:7
2-文字のソート照合、配列を巡って文字が同じかどうかを確認します.
var x = "daskljahiagnaknscsjdwfanalvnahdpwod";
var y = x.split("").sort().join("");
console.log(x)
console.log(y)

結果は次のとおりです.
daskljahiagnaknscsjdwfanalvnahdpwod aaaaaaacddddfghhijjkkllnnnnopsssvww
本題については、すべてのコードは以下の通りです.

var x = "daskljahiagnaknscsjdwfanalvnahdpwod";
var y = x.split("").sort().join("");

function move(str){
     
    result = []; //     
    // console.log(n);
    var key; //            
    for (var i = 0; i < str.length; i++) {
     
        var key;
        for(;str[i] != str[i+1];i++){
     
            // console.log(str[i]);
            if(result.length==0){
     
                result[str[i]] = i + 1; //         i   

            }else{
     
                result[str[i]] = i-key;
            }
            result.length++; // result[str[i]] = i + 1;       ,        ,     
            key = i;
        }
    }
    console.table(result); //         
    var max = 0; //    
    var tmp;

    for (index in result){
     
        if (max < result[index]) {
     
                  max = result[index];
                  tmp = index;
        }
    }
    console.log("          :" + tmp + "
:"
+ max); } move(y);

実行結果
[<16 empty items>,a:7,c:1,d:4,f:1,g:1,h:2,i:1,j:2,k:2,l:2,n:4,o:1,p:1,s:3,v:1,w:2]出現回数が最も多い文字は、a出現回数:7