rubinTime 发表于 2022-2-22 16:03:41

求字符串中出现次数最多的字符和出现的次数,你会几种

//求字符串中出现次数最多的字符和出现的次数
// 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'))

脚本体验师001 发表于 2022-2-22 20:01:26

好使的!哥哥棒棒,哥哥我还要

王一之 发表于 2022-2-23 09:47:10

万能map

排序字符串再遍历
页: [1]
查看完整版本: 求字符串中出现次数最多的字符和出现的次数,你会几种