求字符串中出现次数最多的字符和出现的次数,你会几种
//求字符串中出现次数最多的字符和出现的次数// 1.通过字符串的replace方法,通过正则匹配到字符并且置为空
//通过得到新字符与旧字符的长度差计算出某个字符出现的次数
//通过while循环挨个取首字符进行上述操作比较
function getMaxCount1(str){
let MaxCount=0
let MaxCountChar=''
while(str){
let src_len=str.length
let char=str
const reg=new RegExp(char,'g')
str=str.replace(reg,'')
let replaced_len=str.length
let count=src_len -replaced_len
if(count > MaxCount){
MaxCount=count
MaxCountChar=char
}
if(count==MaxCount&&MaxCountChar!=char){
MaxCountChar+=`,${char}`
}
}
return `出现最多次数的字符为: ${MaxCountChar},出现次数为: ${MaxCount}`
}
// 2.(1)字符串处理成一个数组,先调用sort()排序,再转化成字符串
// (2)遍历每个字符,调用lastIndexof()方法,与该字符的indexof方法比较
// (3)与最大的次数maxCount进行比较,如果maxCount大,就更新
function getMaxCount2(str){
let MaxCount=0
let MaxCountChar=''
let process_str=str.split('').sort().join('')
for(let i=0;i<process_str.length;i++){
let char=process_str
let start=process_str.indexOf(char)
let end=process_str.lastIndexOf(char)
let count=end-start +1
i=end
if(count > MaxCount){
MaxCount=count
MaxCountChar=char
}
if(count==MaxCount&&MaxCountChar!=char){
MaxCountChar+=`,${char}`
}
}
return `出现最多次数的字符为: ${MaxCountChar},出现次数为: ${MaxCount}`
}
//key-value
function getMaxCount3(str){
let MaxCount=0
let MaxCountChar=''
let obj={
}
for(let i=0;i<str.length;i++){
let char=str
if(!obj){
obj=1
}else{
obj++
}
}
for(let key in obj){
if(obj>MaxCount){
MaxCount=obj
MaxCountChar=key
}
if(obj==MaxCount&&MaxCountChar!=key){
MaxCountChar+=`,${key}`
}
}
return `出现最多次数的字符为: ${MaxCountChar},出现次数为: ${MaxCount}`
}
console.log(getMaxCount1('aacbbaccd'))
console.log(getMaxCount2('aadddaacacccc'))
console.log(getMaxCount3('kkkkjlloojojojo'))
好使的!哥哥棒棒,哥哥我还要 万能map
排序字符串再遍历
页:
[1]