輸出字串中出現次數最多的字母,出現了幾次,各個字母分別出現幾次
阿新 • • 發佈:2019-02-02
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 ,從而得到出現最多的字母及其出現的次數