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

每日一题

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

思路

  • 通过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);
相关推荐
虚心的百褶裙4 分钟前
JavaScript性能优化
开发语言·javascript·性能优化
凯瑟琳.奥古斯特11 分钟前
二分查找解力扣1011最优运载能力
开发语言·c++·算法·leetcode·职场和发展
IT_陈寒14 分钟前
React useEffect里面写异步,我的状态怎么老丢?
前端·人工智能·后端
Tim_1028 分钟前
【C++】014、左值与右值的区别
开发语言·c++
凯小默32 分钟前
10.JavaScript 中的类和对象以及继承
javascript·继承
AI视觉网奇32 分钟前
BambuStudio 自定义加载页面
服务器·前端·javascript
天空'之城35 分钟前
Linux 系统编程 14:Reactor 反应堆模式
linux·开发语言·网络编程·reactor 反应堆模式
橙子家37 分钟前
Extension storage、Interest groups 和 Shared storage 简介-浏览器缓存之【隐私沙盒与扩展专用存储】
前端
Zhou1411361 小时前
Java常见面试题7
java·开发语言
^yi1 小时前
【C++】类和对象(全)
开发语言·c++