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

“计算出字符串中出现次数最多的字符是什么,出现了多少次?”

看到这个需求,我想大多数人应该首先想到的是转换成数组,再做处理,当然是可以解决问题的,然后这里提供一个巧妙的算法设计,无需转数组,可以很快解决问题,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
var str = "adadfdfseffserfefsefseeffffftsdg"; 
var maxLength = 0;
var result = "";
while(str!=''){
oldStr = str;
getStr = str.charAt(0);
str = str.replace(new RegExp(getStr,"g"),"");
if( oldStr.length-str.length > maxLength){
maxLength = oldStr.length-str.length;
result = getStr + "=" + maxLength;
}
}
alert(result);