〃安静

文章 评论 浏览 31

〃安静 2022-05-04 13:55:09
// 编程题,找出字符串中 **连续** 出现最多的字符和个数(蘑菇街)

const str1 = 'abcaakjbb'
const result1 = { a: 2, b: 2 }

const str2 = 'abbkejsbcccwqaa'
const result2 = { c: 3 }

function findMax(str) {
  let map = {}
  let pre = ''
  let preLen = 0
  let cur = ''
  let curLen = 0
  for (let i = 0; i < str.length; i++) {
    const s = str[i]
    const next = str[i + 1]
    if (s === next) {
      cur = s
      curLen = curLen ? ++curLen : 2
    } else {
      if (curLen > preLen) {
        if (pre === cur) {
          preLen = curLen
          map[cur] = curLen
        } else {
          map = {
            [cur]: curLen
          }
          pre = cur
          preLen = curLen
        }
      }
      if (curLen === preLen) {
        if (pre !== cur) {
          map[cur] = curLen
        }
      }
      cur = ''
      curLen = 0
    }
  }

  console.log(map)
  return map
}

const find1 = findMax(str1)
console.log(JSON.stringify(find1) === JSON.stringify(result1))
const find2 = findMax(str2)
console.log(JSON.stringify(find2) === JSON.stringify(result2))

第 114 题:找出字符串中连续出现最多的字符和个数

更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文