查找字符串中出現最多的字符


http://www.h5course.com/plus/view.php?aid=256

查找字符串中出現最多的字符

將一個字符串中,出現次數最多的數字提取出來,最后輸出出現最多的字符是什么,出現的次數是多少。

題目剖析

字符串方法的解題思路:從最初開始進行字符的截取,獲取到第一個字符之后,根據這個字符進行字符串的拆分,此時,拆分后的數組中就沒有這個字符了。再將數組組合成字符串之后,原來的長度與當前字符串的長度做差值,就能夠獲取到當前字符出現了幾次。之后運用新的字符串,循環進行操作。需要注意的地方就是,對於出現次數相同的字符,也需要考慮。

相關知識點的使用:字符串、數組方面,需要使用到charAt、split、join、push方法;正則方面,需要使用到子項。

1、字符串方法 - 查找字符串中出現最多的字符

/*
* HTML5 數組字符串正則表達式
* HTML5學堂 http://www.h5course.com
* 獨行冰海 夢幻雪冰
*/
function getMost(str){
    var maxNum = 0;
    var maxChar = [];    //存放出現字數最多的字符數組,因為出現最多的字符可能有多個
    while(str){
        var char = str.charAt(0);
        var arr = str.split(char);
        n = str.length - arr.join('').length;
        str = arr.join('');
        if(n > maxNum){
            maxNum = n;
            maxChar = [char];    // 放置數組元素
        }else if( n === maxNum){
            maxChar.push(char);    //出現次數相同的字符 存入數組里
        }
    }
    return {'maxNum':maxNum, 'maxChar':maxChar}
}
var res = getMost('dsfshkgfareasfd');
console.log('出現次數最多的字符:'+ res.maxChar + ',出現次數:' + res.maxNum);

2、正則方法 - 查找字符串中出現最多的字符

/*
* HTML5 數組字符串正則表達式
* HTML5學堂 http://www.h5course.com
* 獨行冰海 夢幻雪冰
*/
var str = 'dsfshkgfareasfd';
var arr = str.split('');
arr = arr.sort();
str = arr.join('');
 
// 先進行排序處理,然后重新組裝成字符串
var reg = /(\w)\1+/g;
var num = 0;
var value = null;
str.replace(reg, function($0, $1){
    if (num < $0.length) {
        num = $0.length;
        value = $1;
    };
});
console.log(value+'出現次數'+num);

3、自己寫的

function maxArray(arr){
        var map={};
        for(var i=0; i<arr.length;i++){
            map[arr[i]]? map[arr[i]]+= 1: map[arr[i]] =1;
        }
        var max = 0;
        var maxItem=[];
        for(var i in map){
            if(map[i] >= max){
                if(map[i] === max) maxItem.push(i);
                max = map[i];
            }
        }
        return maxItem;
    }

 


免責聲明!

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



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