力扣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;}
};

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/619882.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Elasticsearch基础篇(七):分片大小修改和路由分配规则

Elasticsearch基础篇(七)&#xff1a;分片大小修改和路由分配规则1. 分片1.1 主分片&#xff08;Primary Shard&#xff09;1.2 副本分片&#xff08;Replica Shard&#xff09;1.3 分片路由&#xff08;Routing Shard&#xff09; 2. 分片分配的基本策略3. 分片写入验证3.1 数…

2024年前端最新面试题-vue3(持续更新中)

文章目录 前言正文什么是 MVVC什么是 MVVM什么是 SPA什么是SFC为什么 data 选项是一个函数Vue 组件通讯&#xff08;传值&#xff09;有哪些方式Vue 的生命周期方法有哪些如何理解 Vue 的单项数据流如何理解 Vue 的双向数据绑定Vue3的响应式原理是什么介绍一下 Vue 的虚拟 DOM介…

设计模式-- 3.适配器模式

适配器模式 将一个类的接口转换成客户希望的另外一个接口。使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 角色和职责 请求者&#xff08;client&#xff09;&#xff1a;客户端角色,需要使用适配器的对象&#xff0c;不需要关心适配器内部的实现&#xff0c;…

IEEE论文LaTeX模板解析(十一)| 尾页栏目均衡(Last Page Column Equalization)

本文收录于专栏&#xff1a;IEEE论文LaTeX模板解析&#xff0c;本专栏将会围绕IEEE论文LaTeX模板解析持续更新。欢迎点赞收藏关注&#xff01; 文章目录 IEEE 在最后一页平衡了各栏的长度。这种平衡是粗略的&#xff0c;因为参考文献或 IEEE 传记条目通常不会断开&#xff0c;…

Origin 或 Referer 的关系和区别

Origin 或 Referer 的关系和区别 Origin 和 Referer 都可以服务端用来做来源验证&#xff0c;来防止 csrf 攻击&#xff0c;都是浏览器自动带在请求头的但是&#xff0c;可以通过 Referrer Policy 来禁止请求携带 referer&#xff0c;【请求头增加字段 Referrer-Policy: no-ref…

TF-IDF(词频-逆文档频率)

文章目录 高频词只能说明词汇在评论中出现的频率高&#xff0c;但并不能说明这个词汇的重要性。利用关键词提取可以弥补这一不足&#xff0c;关键词提取是一种自动化的文本处理技术&#xff0c;它可以从一篇文章中自动抽取出最能代表文章主题和内容的若干个词语或短语。通常情况…

常用的检测数据异常值方式,以及异常数据如何处理!!

清除数据异常值 1.箱线图检测数据异常值方法2.3σ原则检测数据异常值方法3. 异常数据处理方式&#xff1a;总结&#xff08;小白看看就行&#xff09; 1.箱线图检测数据异常值方法 箱线图检测&#xff1a;箱线图是一种常用的异常值检测方法&#xff0c;它以数据的分位数为基础…

常见的加密算法

加密算法 AES 高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法(微信小程序加密传输就是用这个加密算法的)。对称加密算法也就是加密和解密用相同的密钥&#xff0c;具体的加密流程如下图&#xff1a; RSA RSA 加密算法是一种典型的非对称加密算法&am…

正则表达式2 常见模式

继上次的正则表达式速攻1/2-CSDN博客 还有一些常见的匹配模式可以直接使用 电子邮箱 xxxxxx.域名 的情况 \b[A-Za-z0-9._%-][A-Za-z0-9.-]\.[A-Z|a-z]{2,}\bhttp或者https网址 的情况 http[s]?://(?:[a-zA-Z]|[0-9]|[$-_.&]|[!*\\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F…

DRL入门

目录 1. DRL的核心概念 2. 算法分类 1、免模型学习和有模型学习&#xff08;理不理解所处的环境&#xff09; 2、基于策略&#xff08;概率&#xff09;的方法和基于价值的方法 3、回合更新和单步更新&#xff1a; 4、在线学习和离线学习 文献 1. Deep Reinforcement L…

Java后端开发——Mybatis实验

文章目录 Java后端开发——Mybatis实验一、MyBatis入门程序1.创建工程2.引入相关依赖3.数据库准备4.编写数据库连接信息配置文件5.创建POJO实体6.编写核心配置文件和映射文件 二、MyBatis案例&#xff1a;员工管理系统1.在mybatis数据库中创建employee表2.创建持久化类Employee…

嵌套的CMake

hehedalinux:~/Linux/multi-v1$ tree . ├── calc │ ├── add.cpp │ ├── CMakeLists.txt │ ├── div.cpp │ ├── mult.cpp │ └── sub.cpp ├── CMakeLists.txt ├── include │ ├── calc.h │ └── sort.h ├── sort │ ├── …

Java language programming:设计一个矩形类Rectangle

&#xff08;源于PTA&#xff09; 题目&#xff1a;设计一个名为Rectangle的类表示矩形。 这个类包括&#xff1a; <1>.两个名为width和height的double型数据域&#xff0c;它们分别表示矩形的宽和高。width和height的默认值都为1。 <2>.一个无参构造方法。 <3&…

网络安全工具大全

通用工具 工具类型 工具地址 更新时间 内网扫描 https://github.com/shadow1ng/fscan 2022-07-06 哥斯拉Webshell管理 https://github.com/BeichenDream/Godzilla 2021-11-01 ARL 资产侦察灯塔 https://github.com/TophantTechnology/ARL 2022-08-25 aliyun-accesskey-Too…

基于面向对象编程,C++实现单链表

链表&#xff1a;在内存空间中是非连续存储 组成&#xff1a;链表是由一个个节点组成的&#xff0c;每个节点都包含两个元素&#xff1a;数据和指针 节点头文件&#xff1a; 建立一个ListNode.h头文件 #pragma once class ListNode { public:int value;ListNode* next;Lis…

杭州经典爬山路线推荐

杭州经典爬山路线推荐爬山地图 【东岳村】路线一&#xff1a;东岳村(上山)——美人峰——龙门山——石人岭——天门山——石门山——棋盘山——天马山——茶叶博物馆&#xff08;下山&#xff09; 【林海亭】路线一&#xff1a;林海亭&#xff08;上山&#xff09;——唐家坞—…

设计模式之并发特定场景下的设计模式 Two-phase Termination(两阶段终止)模式

思考一下 在线程1中如何终止线程2&#xff1f;stop()&#xff1f;还是System.exit()&#xff1f;还是其他方式 方式解答 1.使用stop()不可取 线程对象的stop()方法会直接杀死线程&#xff0c;假设此时使用了线程锁&#xff0c;当此时使用了stop()命令会导致线程锁无法释放&am…

当浏览器输入url的时候会发生什么?

说在前面 当我们在浏览器中输入URL并按下回车时&#xff0c;背后发生了一系列神秘的操作。本文将带您深入了解&#xff0c;从URL解析到页面渲染&#xff0c;揭秘浏览器输入URL的完整流程。 具体步骤 当浏览器输入URL时&#xff0c;一般经过以下细节步骤&#xff1a; 1、引言 …

利用Qt输出XML文件

使用Qt输出xml文件 void PixelConversionLibrary::generateXML() {QFile file("D:/TEST.xml");//创建xml文件if (!file.open(QIODevice::WriteOnly | QIODevice::Text))//以只写方式&#xff0c;文本模式打开文件{qDebug() << "generateXML:Failed to op…

语义分割miou指标计算详解

文章目录 1. 语义分割的评价指标2. 混淆矩阵计算2.1 np.bincount的使用2.2 混淆矩阵计算 3. 语义分割指标计算3.1 IOU计算方式1(推荐)方式2 3.2 Precision 计算3.3 总体的Accuracy计算3.4 Recall 计算3.5 MIOU计算 参考 MIoU全称为Mean Intersection over Union&#xff0c;平均…