1. 程式人生 > >輸出字串中出現次數最多的字母,出現了幾次,各個字母分別出現幾次

輸出字串中出現次數最多的字母,出現了幾次,各個字母分別出現幾次

 var  str="aabjjdhndhfdjfdkfdjjgkdfsgjkfsgjfhggh";
  var  result={};
  for(var i=0;i<str.length;i++){
      var chart=str.charAt(i);
      if(result[chart] && chart==result[chart].value){
         result[chart].count++;
      }else{
          result[chart]={};
          result[chart].value=chart;
          result[chart].count=1;
      }
  }

  // 輸出各個字母出現的次數
  for(var chart in result){
      console.log(result[chart].value+":"+result[chart].count)
  }

    // 輸出出現次數最多的字母,出現了幾次
    var max=0,mostC;
    for(var i=0;i<str.length;i++){
        var chart=str.charAt(i);
        if(result[chart].count>max){
            max=result[chart].count;
            mostC=chart;

        }
    }  
    console.log("字串中出現次數最多的字母是"+mostC+"一共出現了"+max+"次")


     思路如下

          遍歷陣列,記錄下每個字母出現的次數。將結果放在result物件中,result的格式為 {a:{value:"a",count:3},{b:{value:"b",count:4}}。當然result的資料格式是可變的。

              使用for  in 迴圈遍歷result ,輸出每個字母以及它出現的次數

              由於result不能直接遍歷,而將其中的count值全部拿出來又較為繁瑣,所以採用了直接對字串str進行遍歷,始終將更大的count值賦值給max ,從而得到出現最多的字母及其出現的次數