zhangdizhangdi

去除字符串中出现次数最少的字符

题目

题目

去除字符串中出现次数最少的字符,不改变原字符串的顺序。
“ababac” —— “ababa”
“aaabbbcceeff” —— “aaabbb”

题解

js
function getStr(str) {
  //计算出现次数
  const sMap = new Map()
  for (let item of str) {
    let len = 0
    if (sMap.has(item)) {
      len = sMap.get(item)
      sMap.set(item, len + 1)
    } else {
      len = 1
      sMap.set(item, len)
    }
  }
  //找最小
  const sLen = str.length
  let min = sLen
  for (let item of sMap) {
    const [key, time] = item
    min = time < min ? time : min
  }
  //拼接字符串
  let rStr = ''
  for (let i = 0; i < sLen; i++) {
    const s = str[i]
    if (sMap.get(s) !== min) {
      rStr += s
    }
  }
  return rStr
}

console.log('🌰 ababac', getStr('ababac'))
console.log('🌰 aaabbbcceeff', getStr('aaabbbcceeff'))
执行结果
🌰 ababac ababa
🌰 aaabbbcceeff aaabbb