当前位置: 首页 > news >正文

力扣2182.构造限制重复的字符串

 思路:先记录每个字符的出现次数,构建一个新字符串,从尾取字符,每取一个该字符个数-1,若该字符已经取到有repeatLimit个,则递归取次大的字符,并对应字符个数-1,若没有次大字符了,则直接返回

代码:

class Solution {
public:bool lastchar(string &s, vector<int>& alphabet, int i){    //递归找次大字符if(--i == -1) return false;    //没有返回falseif(alphabet[i] != 0){    alphabet[i]--;    //找到了对应字符个数-1s += i + 'a';    //取出字符return true;    //有返回true}return lastchar(s, alphabet, i);}string repeatLimitedString(string s, int repeatLimit) {vector<int> alphabet(26);    //记录每个字母个数for(auto letter : s)    //记录alphabet[letter - 'a']++;string newstr = "";    //存储结果for(int i = 25; i >= 0; --i){if(alphabet[i] != 0){int count = 0;    //记录当前字符取了几个了while(alphabet[i]){    //取完当前字符为止if(count == repeatLimit){    //若已经取到repeatLimit个if(!lastchar(newstr,alphabet,i)){    //找次大字符,若没有直接返回结果return newstr;}count = 0;    //重置取了几个}alphabet[i]--;    //没有取到repeatLimit个则对应字符个数-1++count;    //取值个数+1newstr += i + 'a';    //取出字符}}}return newstr;}
};

 

相关文章:

  • 代码随想录算法训练营第四天|24. 两两交换链表中的节点,19.删除链表的倒数第N个节点,面试题 02.07. 链表相交,142.环形链表II,总结
  • 1panel中的sftpgo webadmin 更新修改docker容器文件的配置教程
  • 基于FFmpeg的简单Android视频播放器
  • 生物信息学中的可重复性研究
  • 大模型实战营Day3 作业
  • 【读书笔记】网空态势感知理论与模型(十)
  • SOMEIP学习总结
  • 二叉树的中序遍历【二叉树】【递归】
  • AI手写数字识别(二)
  • ES 之索引和文档
  • Jenkins-执行脚本案例-初步认识JenKins的使用
  • 系列十一、Spring Security登录接口兼容JSON格式登录
  • LeetCode第380场周赛个人题解
  • 时序预测 | MATLAB实现GRNN广义回归神经网络时间序列未来多步预测(程序含详细预测步骤)
  • HCIA-Datacom实验指导手册:1、华为 VRP 系统基本操作
  • 0x05 Python数据分析,Anaconda八斩刀
  • eclipse的离线汉化
  • javascript面向对象之创建对象
  • JavaScript异步流程控制的前世今生
  • Median of Two Sorted Arrays
  • Promise面试题,控制异步流程
  • Python 反序列化安全问题(二)
  • windows下使用nginx调试简介
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 回顾2016
  • 面试总结JavaScript篇
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 移动端解决方案学习记录
  • 阿里云ACE认证之理解CDN技术
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • ​力扣解法汇总946-验证栈序列
  • ​如何在iOS手机上查看应用日志
  • ​学习一下,什么是预包装食品?​
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (八)c52学习之旅-中断实验
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • (转)四层和七层负载均衡的区别
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • .Family_物联网
  • .gitignore文件_Git:.gitignore
  • .net 程序发生了一个不可捕获的异常
  • .NET 动态调用WebService + WSE + UsernameToken
  • .Net 路由处理厉害了
  • .net6使用Sejil可视化日志