給定一個字符串,寫一個函數(shù)求出重復次數(shù)最多的字符及其出現(xiàn)次數(shù)

// 第一種方法
let abc = "asfdhdjakghksdgasdgasgwaekbasflh"
function serchStr(str){
  // 建立一個目標對象
  const target = {};
  // 遍歷字符串
  for ( let i in str ) {
    if (!target[str.charAt(i)]) {
      // 第一次遍歷到字符時創(chuàng)建key并使value為1
      target[str.charAt(i)] = 1
    }else{
      // 當遍歷到重復字符時使value+1
      target[str.charAt(i)] += 1
    }
  }
  // 此時target記錄了字符串中的字符及其出現(xiàn)次數(shù),但如果出現(xiàn)次數(shù)最多的字符有復數(shù)存在想要得出結果十分復雜
}

// 第二種方法
var abc = "asfdhdjakghksdgasdgasgwaekbasflhs"
function serchStr(str){
    let target = new Map()
    for(var i in str){
        if(!target.has(str[i])){
            // 如果第一次遍歷到字符,建立一個鍵值對并設置值為1
            target.set(str[i],1)
        }else{
            // 如果已經(jīng)遍歷過該字符,讓鍵值對的值+1
            target.set(str[i],target.get(str[i])+1)
        }
    }
    let count = 0
    target.forEach(ele=>{
        // 計算出現(xiàn)次數(shù)最多的字符所出現(xiàn)的次數(shù)
        if(ele>count) count=ele
    })
    for( let [key,value] of target){
        if(value == count){
            // 輸出匹配最多輸出次數(shù)的鍵值對
            console.log(key+"=>"+value)
        }
    }
}
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容