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

每日一题

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

思路

  • 通过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);
相关推荐
三天不学习2 分钟前
【入门教学】Python包管理与pip常用包
开发语言·python·pip
共享家95277 分钟前
测试常用函数(下)
java·服务器·前端
沐知全栈开发12 分钟前
桥接模式(Bridge Pattern)
开发语言
问道飞鱼15 分钟前
【Rust开发知识】Actix-web 开发环境搭建完整教程
开发语言·前端·rust·actix-web
a1760293175716 分钟前
任天堂超级马里奥合集系列游戏130合1 解压即玩 天马G前端整合包附使用教程
前端·游戏·玩游戏·游戏机·单机游戏
雪忆·HL23 分钟前
CSS3知道这些就足够了
前端·css·css3
心机boy22923 分钟前
CSS3网格布局、过渡及2D效果
前端·javascript·css3
空白23 分钟前
自学HTML5+CSS3丨第三天丨详解SEO
前端·css3·html5
oak隔壁找我24 分钟前
使用 json-server 快速创建一个完整的 REST API
前端·javascript
2401_8364131424 分钟前
CSS2与CSS3布局方式比较
前端·css·css3