高效查找一个字符串中,出现次数最多的字符

本文介绍了三种JavaScript方法来查找字符串中出现次数最多的字符。第一种利用hash计数统计,第二种通过split方法,第三种借助replace函数。通过示例代码展示了如何实现这些方法并获取最频繁字符及其出现次数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//查找字符串中出现最多的字符  及次数-----------

//采用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")["max"])


//采用splite
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"]);

        //采用replace函数
    var str= 'sjckjdsbkjcbsdjkbkjb';
    str = str.split('').sort().join('');
    var count = 0;
    var val;
    str.replace(/(\w)\1*/g,function(arg0,arg1){
if(arg0.length>count){
count = arg0.length;
val = arg0;
    }
        })


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值