找出字符串中字符出現次數最多的字符,並計算次數


在這么炎熱的夏天,求職卻成了一件我生活中很重要的‘工作’,在經歷幾次面試之后,心情一度低落。可是直到昨天面試下來,突然間發現自己的價值了,原來我也沒那么笨。好了不說了,我寫下我昨天的一道面試題:找出字符串中字符出現次數最多的字符,並計算次數?

(function( str ){
        var arr = str.split('');  // 先把字符串切割成數組,因為要遍歷這個數組
        var newArr = [];  // 定義一個新的數組用來存放[{'letter':'a','count':1},{'letter':'s','count':4}....] 這樣的對象
        for( var i=0;i<arr.length;i++ ){
            var isExist = false;  // 定義一個標記,判斷循環的當前字母在不在newArr數組的對應的對象里
            for( var j =0; j < newArr.length;j++ ){    // 如果存在了就對應的count次數+1
                if( arr[i] == newArr[j]['letter']){
                    newArr[j]['count'] += 1;
                    isExsit = true;
                }
            }
            if(!isExist){
                var obj = {'letter':arr[i],'count':1};  // 如果newArr里不存在對應的對象,就new一個新的對象push進去
                newArr.push(obj);
            }
        }
        // 到這里,newArr就形成了想要的樣子[{‘letter’:'a','count':1},{‘letter’:'s','count':4}....]
        // 現在就是要找出‘count’的最大值,再找到對應的字母‘letter’
        // 先假設是最大值是數組里的第一個
        var max = newArr[0]['count'],maxLetter;
        // 再對newArr進行循環
        for(var k = 0; k < newArr.length; k++ ){
            if( newArr[k]['count'] > max ){
                max = newArr[k]['count'];
                maxLetter = newArr[k]['letter'];
            }
        }
        console.log(max,maxLetter)   // 在控制台打印的是 6 ‘d’
    }('asdfgdfgdhdsdffsds'))

還好做出來了,這里的主要思路就是用對象和數組來存儲遍歷到的數據,就這樣吧,也不多說了!

 


免責聲明!

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



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