每日一题:去除字符串中出现次数最少的字符,不改变原字符的顺序

每日一题

去除字符串中出现次数最少的字符,不改变原字符的顺序。实现删除字符串中出现次数最少的字符,若出现次数最少的字符有多个,则把出现次数最少的字符都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。

思路

  • 通过forEaech来统计字符个数
  • 找出最少的字符的个数
  • 将最少的字符组成数组
  • 正则全局替换掉出现最少得字符

javascript 复制代码
let c = 'accacddaddbb';
let arr = c.split('');
let crrute = {};
/*通过forEaech来统计字符个数*/
arr.forEach((item)=>{
  if(!crrute[item]){
    crrute[item] = 1;
  }else{
    crrute[item] += 1;
  }
})
/*通过reduce来统计字符个数*/
// crrute = arr.reduce((acc,curr) => {
//  acc[curr] ? acc[curr] += 1 : acc[curr] = 1
//  return acc
// },{})
//console.log(crrute);

/*找出最少的字符的个数*/
let valus = Object.values(crrute)
let result = valus.reduce((acc, curr)=>{
  return Math.min(acc,curr);
},Infinity);

/*将最少的字符组成数组*/
let keyArr = [];
for (key in crrute){
    if(result == crrute[key]){
      keyArr.push(key)
    }
}
/*正则全局替换掉出现最少得字符*/
let n = '';
keyArr.forEach((item)=>{
  n = c.replace(new RegExp(item, 'g'),'') 
  c = n;
})

console.log(c);
相关推荐
索荣荣8 分钟前
JavaToken实战指南:从原理到应用
开发语言·python
夏幻灵13 分钟前
过来人的经验-前端学习路线
前端
zho_uzhou13 分钟前
c++ imgui implot绘图使用示例 visual studio
开发语言·c++·visual studio
dyyx11115 分钟前
C++中的过滤器模式
开发语言·c++·算法
星夜泊客30 分钟前
C# 基础:为什么类可以在静态方法中创建自己的实例?
开发语言·经验分享·笔记·unity·c#·游戏引擎
CappuccinoRose32 分钟前
React框架学习文档(七)
开发语言·前端·javascript·react.js·前端框架·reactjs·react router
FFF-X42 分钟前
前端字符串模糊匹配实现:精准匹配 + Levenshtein 编辑距离兜底
前端
消失的旧时光-194342 分钟前
从拷贝到移动:C++ 移动构造与移动赋值是怎么被逼出来的?(附完整示例)
开发语言·c++
古译汉书43 分钟前
部分.exe文件打开但是一直显示界面,点击任务栏持续无反应
开发语言·单片机·嵌入式硬件
2301_817497331 小时前
C++中的装饰器模式高级应用
开发语言·c++·算法