1. 程式人生 > >檢測各個字母出現的次數,以及出現最多次數的是哪個字母(遇到的面試題之一)

檢測各個字母出現的次數,以及出現最多次數的是哪個字母(遇到的面試題之一)

給出一個字串,要求檢測各個字母出現的次數,以及出現最多次數的是哪個字母

var str = “communicaaaaaaaaaaaaationnnnnnnnnnnnn”

思路:
1、首先需要遍歷這個字串中的每一項
2、考慮到要將每個字母出現的次數都打印出來,並且得到出現次數最多的一項,可以考慮用到物件

程式碼

count();
function count (){
var str = "communicaaaaaaaaaaaaationnnnnnnnnnnnn"
var obj = {}    //將字串遍歷之後,把字母儲存為物件的鍵名、出現的次數儲存為物件的鍵值,即得到每個字母出現的次數
var max = 0 //用來儲存出現最多的次數 var arr =[] //用以儲蓄出現最多次數的字母 for(var i=0; i<str.length; i++){ //迴圈字串中的每一項 //判斷obj這個物件中,是否已經存在這個鍵名,如果已經有,鍵值+1;如果目前還沒有出現,則鍵值=1,這樣我們就可以得到每個字母出現的次數 if(obj[str[i]]){ obj[str[i]]++ }else{ obj[str[i]] = 1 } } // 遍歷物件中的每一項,拿物件中每一個鍵值跟我們設定的max來比較,如果比max大,則讓max = 這個鍵值,以得到出現最多的次數
for(var j in obj){ if(obj[j] > max){ max = obj[j] } } //得到max之後,我們再來迴圈obj,判斷obj中哪些鍵值是等於這個最大值的,這樣講這些資料push到我們的陣列中,即可得到出現最次數的字母 for (var a in obj){ if(obj[a]==max){ arr.push(a) } } console.log(arr,max) }