统计字符串中出现最多的字符和次数

统计字符串中出现最多的字符和次数

方法一

实现思路:

1.创建一个空对象

2.遍历这个字符串,如果遍历的字符出现在json对象里面就次数+1,不在里面就新增一个key,value就是1

3.分别定义一个变量maxStr存放字符和maxCount统计字符出现的次数

4.遍历json对象的key值,如果key值大于变量存放的最大字符次数,就把json的key值重新赋值给maxCount,字符就等于key

function getMaxCount(str){
	let json = {};
	for (i = 0; i < str.length; i++) {
    if (!json[str.charAt(i)]) {
        json[str.charAt(i)] = 1;
    }else{
        json[str.charAt(i)]++;
    }
}
let maxStr = '';
let maxCount = 0;
for(let  key in json){
    if(json[key] > maxCount){
        maxCount = json[key];
        maxStr = key;
    }
}
return `出现次数最多的字符为:${maxStr},出现的次数为:${maxCount}`;            
}       
let str = 'hellojavascripthellohtmlhellocss';
console.log(getMaxStr(str));

方法二

实现思路:
1.字符串处理为一个数组,调用sort()方法排序,join拼接为字符串
2.遍历每个字符,调用lastIndexOf()方法,
3.与最大的次数maxCount进行比较,如果比maxCount大,就更新maxCount,否则继续

function getMaxCount(str){
    let maxCount = 0;
    let maxCountChar  = '';
    str = str.split('').sort().join('');
    for(let i = 0,j =str.length;i<j;i++){
        let char =str.charAt(i);
        let charCount = str.lastIndexOf(char) - i + 1;
        if(charCount > maxCount){
            maxCount = charCount;
            maxCountChar = char;
        }
        i = str.lastIndexOf(char);
    }
    return `出现次数最多的字符为${maxCountChar},出现的次数为${maxCount}`
}
let str = 'hellojavascripthellohtmlhellocss';
console.log(getMaxCount(str));

方法三

1.使用字符串的replace()方法
2.先统计原来字符长度
3.获取到第一个字符
4.通过正则将获取到的字符进行替换为空
5.再次统计字符长度
6.原字符长度 - 替换之后的字符长度 得出的结果就是该字符的次数

function getMaxCount(str) {
    let maxCount = 0;
    let maxCountChar = '';
    while (str) {
        let length = str.length;
        let char = str.charAt(0);
        let reg = new RegExp(char, 'g');
        str = str.replace(reg, '');
        let restLength = str.length;
        let charCount = length - restLength;
        if (charCount > maxCount) {
            maxCount = charCount;
            maxCountChar = char;
        }
    }
    return `出现次数最多的字符为${maxCountChar},出现次数是${maxCount}次`
}
let str = 'hellojavascripthellohtmlhellocss';
console.log(getMaxCount(str));
posted @ 2022-06-07 23:36  秋弦  阅读(525)  评论(0编辑  收藏  举报