1、不允许简单的循环查找;
2、字符串长度大于100000;
3、字符串中可能会有中文;
4、可以使用语言内置函数;
1. 采用hash计数统计:
function find(str) {
var hash = {}, max = 0, c;
var length = str.length;
for(var i = 0; i < length; i++){
var char = str.charAt(i);
if(hash.hasOwnProperty(char)){
var count = hash[char];
}else {
count = 0;
}
hash[char] = ++count;
if(count > max) {
max = count;
c = char;
}
}
return {"max":max, "char":c};
}
alert(find("adflaskdjflkjlaksdjflkasjdfkwj")["char"]);
2. 用String.split
实现:
function find(str) {
var max = 0, c;
while(str) {
var char = str.charAt(0);
var a = str.split(char);
var count = str.length - (str = a.join("")).length;
if(count > max) {
max = count;
c = char;
}
}
return {"max":max, "char":c};
}
alert(find("adflaskdjflkjlaksdjflkasjdfkwj")["char"]);