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

每日一题

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

思路

  • 通过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);
相关推荐
zach23 分钟前
前端落地实战:Next.js 项目 Nginx + PM2 生产部署全流程(附踩坑总结)
前端·pm2·next.js
overmind32 分钟前
oeasy教h5前端001 修改的乐趣_直接修改在线网页
前端
只睡四小时37 分钟前
JS 手写 D-pad 空间导航:电视端焦点引擎实战
android·开发语言·前端·javascript·ecmascript·hls·空间导航
2601_9622186138 分钟前
C++的几种编译器的实现
开发语言·c++
恋猫de小郭40 分钟前
Android 原生的 Compose A2UI 也来了,你还抱着 XML 养老吗?
android·前端·flutter
庄园特聘拆椅狂魔40 分钟前
从连连看到粒子消散——前端小游戏与视觉特效的技术选型
前端
多弗朗皮卡丘1 小时前
C++ stack和queue
开发语言·c++·deque·queue·stack·容器适配器
JudithHuang1 小时前
React 常用 Hooks
前端·react.js·前端框架
维克兜率天1 小时前
【维克】弹性策略:用“乖离率“捕捉超跌反弹
android·开发语言·python·深度学习·kotlin·量化
TOOLS指南1 小时前
Chatshare 域名乱象:如何辨别仿冒站点,避坑指南
开发语言·信息可视化