例: abbcccddddd -> 字符最多的是d,出现了5次
方法一、
var str = "abcabcabcbbccccc";
var strObj = {} // 存放不重复字符及个数
var max = 0; // 存储出现最多的字符个数
var keyVal = 0; // 键值
var strObjKey = ''
var strSort = str.split('').sort()
//输出为["a", "a", "a", "b", "b", "b", "b", "b", "c", "c", "c", "c", "c", "c", "c", "c"]
for(var i = 0;i<=strSort.length;i++){
if(strSort[i] != strSort[i+1]){
strObj[strSort[i]] = i+1
}
}
//strObj输出为 {a: 3, b: 8, c: 16}
for(var key in strObj){
if(max<strObj[key]-max){
max = strObj[key]-keyVal
keyVal = strObj[key]
strObjKey = key
}
}
console.log('最大为'+strObjKey+'个数为'+max)
console.log(strObj)
方法二、
let str = "abcabcabcbbccccc";
let num = 0;
let char = '';
// 使其按照一定的次序排列
str = str.split('').sort().join('');
// "aaabbbbbcccccccc"
// 定义正则表达式
let re = /(\w)\1+/g;
str.replace(re,($0,$1) => {
if(num < $0.length){
num = $0.length;
char = $1;
}
});
console.log(`字符最多的是${char},出现了${num}次`);
参考:
作者:寻找海蓝96
链接:https://juejin.cn/post/6844903940786487309