新闻详情

新闻详情

首页 / 资讯中心 / 详情

贪心题目:不含 AAA 或 BBB 的字符串

发布时间:2026/9/30 6:33:50来源:尧图网络
贪心题目:不含 AAA 或 BBB 的字符串
文章目录题目标题和出处难度题目描述要求示例数据范围解法思路和算法代码复杂度分析题目标题和出处标题不含 AAA 或 BBB 的字符串出处984. 不含 AAA 或 BBB 的字符串难度4 级题目描述要求给定两个整数a \texttt{a}a和b \texttt{b}b返回任意满足以下要求的字符串s \texttt{s}ss \texttt{s}s的长度为a b \texttt{a} \texttt{b}ab且正好包含a \texttt{a}a个字母‘a’ \texttt{a}‘a’与b \texttt{b}b个字母‘b’ \texttt{b}‘b’。子串aaa \texttt{aaa}aaa没有出现在s \texttt{s}s中。子串bbb \texttt{bbb}bbb没有出现在s \texttt{s}s中。示例示例 1输入a 1, b 2 \texttt{a 1, b 2}a 1, b 2输出abb \texttt{abb}abb解释abb \texttt{abb}abb、bab \texttt{bab}bab和bba \texttt{bba}bba都是正确答案。示例 2输入a 4, b 1 \texttt{a 4, b 1}a 4, b 1输出aabaa \texttt{aabaa}aabaa数据范围0 ≤ a, b ≤ 100 \texttt{0} \le \texttt{a, b} \le \texttt{100}0≤a, b≤100对于给定的a \texttt{a}a和b \texttt{b}b保证存在满足要求的s \texttt{s}s解法思路和算法这道题要求构造字符串s ss满足由a aa个字母‘a’ \text{a}‘a’和b bb个字母‘b’ \text{b}‘b’组成且不存在三个相同的连续字母因此相同字母最多连续出现两次。在b bb的值确定的情况下a aa的值最大时对应的s ss由b bb组“aab \text{aab}“aab以及一组“aa \text{aa}“aa构成此时s ss的长度是a b 3 b 2 a b 3b 2ab3b2因此a 2 b 2 a 2b 2a2b2。当b 0 b 0b0时也适用。同理可知在a aa的值确定的情况下b bb的最大值是2 a 2 2a 22a2。因此非负整数a aa和b bb满足0 ≤ a ≤ 2 b 2 0 \le a \le 2b 20≤a≤2b2和0 ≤ b ≤ 2 a 2 0 \le b \le 2a 20≤b≤2a2。当a b a bab时用x xx表示每个字母的出现次数则s ss可以由x xx组“ab \text{ab}“ab构成此时s ss中的任意两个相邻字母都不相同。当a ≠ b a \ne bab时出现次数较多的字母将在s ss中连续出现构造时应满足相同字母最多连续出现两次。以下考虑a b a bab的情况对于a b a bab的情况做法相同只要将两个字母交换即可。当a b 0 a b 0ab0时每次将一组“aab \text{aab}“aab拼接到s ss的末尾则每次使用两个‘a’ \text{a}‘a’和一个‘b’ \text{b}‘b’因此将a aa的值减2 22将b bb的值减1 11此时s ss中不存在三个相同的连续字母。重复该操作直到a b a bab或b 0 b 0b0。如果a b a bab则每次将一组“ab \text{ab}“ab拼接到s ss的末尾每次使用一个‘a’ \text{a}‘a’和一个‘b’ \text{b}‘b’因此将a aa的值减1 11将b bb的值减1 11此时s ss中不存在三个相同的连续字母。重复该操作直到a b 0 a b 0ab0。如果a 0 a 0a0且b 0 b 0b0则将剩余的‘a’ \text{a}‘a’拼接到s ss的末尾。上述做法使用贪心策略贪心策略的正确性说明如下。当a b 0 a b 0ab0时每次将一组“aab \text{aab}“aab拼接到s ss的末尾因此s ss为空或者s ss的最后一个字母是‘b’ \text{b}‘b’。由于每一次拼接的两个或三个字母都以‘a’ \text{a}‘a’开始且最多有两个连续的‘a’ \text{a}‘a’因此不会出现三个相同的连续字母。由于保证存在满足要求的s ss因此当a 0 a 0a0且b 0 b 0b0时必有a ≤ 2 a \le 2a≤2此时s ss为空或者s ss的最后一个字母是‘b’ \text{b}‘b’将剩余的‘a’ \text{a}‘a’拼接到s ss的末尾不会出现三个相同的连续字母。代码classSolution{publicStringstrWithout3a3b(inta,intb){StringBuffersbnewStringBuffer();while(abb0){sb.append(aab);a-2;b--;}while(baa0){sb.append(bba);b-2;a--;}while(a0b0){sb.append(ab);a--;b--;}while(a0){sb.append(a);a--;}while(b0){sb.append(b);b--;}returnsb.toString();}}复杂度分析时间复杂度O ( a b ) O(a b)O(ab)其中a aa和b bb分别是s ss中的字母‘a’ \text{a}‘a’和字母‘b’ \text{b}‘b’的个数。需要构造长度为a b a bab的字符串拼接每个字母的时间是O ( 1 ) O(1)O(1)。空间复杂度O ( a b ) O(a b)O(ab)其中a aa和b bb分别是s ss中的字母‘a’ \text{a}‘a’和字母‘b’ \text{b}‘b’的个数。需要创建一个长度为a b a bab的StringBuffer \texttt{StringBuffer}StringBuffer或StringBuilder \texttt{StringBuilder}StringBuilder类型的对象。由于 Java 中的String \texttt{String}String类型的对象不可变因此空间复杂度至少为O ( a b ) O(a b)O(ab)。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

移动端AI工作流:两段口令打通文案到生图闭环 2026/9/30 12:55:30

移动端AI工作流:两段口令打通文案到生图闭环

1. 移动端 AI 工作流的核心思路拆解1.1 为什么要在手机上折腾 AI 工作流先说一个我自己的真实场景。上周在外面跑客户,对方临时要一套新品推广素材,文案加配图,下午三点前要看到初稿。我包里没带笔记本,手边只有一台手机。以前遇到…

阅读更多 →
高压侧既要供电又要通信,怎么做?共模电源+飞尔康POF光纤组成一套完整方案 2026/9/30 12:55:24

高压侧既要供电又要通信,怎么做?共模电源+飞尔康POF光纤组成一套完整方案

高压侧既要供电又要通信,怎么做?共模电源+飞尔康POF光纤组成一套完整方案在高压变频器、储能PCS、SST固态变压器等设备中,高压侧控制板经常同时面对两个问题:一是MCU、FPGA、采样和通信模块需要稳定的低压电源&#xf…

阅读更多 →
5 款 AI 写论文哪个好?云智变 AI 文献真实可溯源,自选图表数据|官网[www.yunzhibian.cn](https://www.yunzhibian.cn),微信公众号搜一搜云智变 ai 2026/9/30 12:55:24

5 款 AI 写论文哪个好?云智变 AI 文献真实可溯源,自选图表数据|官网[www.yunzhibian.cn](https://www.yunzhibian.cn),微信公众号搜一搜云智变 ai

临近毕业季,很多同学在挑选论文辅助 AI 时陷入两难:要么 AI 生成的参考文献全是编造的,被导师核查直接判定学术风险;要么只能单纯写文字,想要配套图表、调研数据还得手动去其他软件制作。作为长期测评学术写作工具的教…

阅读更多 →
两级冲击时间控制制导律与混合比例导引Matlab仿真解析 2026/9/30 12:55:17

两级冲击时间控制制导律与混合比例导引Matlab仿真解析

讲真,"冲击时间控制制导律"(Impact Time Control Guidance,简称ITCG)这个话题,在制导与控制方向的学生和工程师圈子里,讨论热度一直不低。原因很现实:现在单发精确打击早就不是唯一关…

阅读更多 →
Plotly旭日图实战:从层级数据清洗到动态在线交互的完整方案 2026/9/30 12:55:17

Plotly旭日图实战:从层级数据清洗到动态在线交互的完整方案

做数据可视化这几年,团队里被问到最多的问题就是:手上的数据层次又多又深,到底用什么图才能讲得清楚。我的答案里,plotly的旭日图基本是优先级最高的选项之一。它能把复杂的层级结构、占比关系和交互探索揉在一张图里,…

阅读更多 →
状态页事故归档:Python爬虫实现SLA复盘与监控联动 2026/9/30 12:55:17

状态页事故归档:Python爬虫实现SLA复盘与监控联动

干运维和SRE的朋友,应该都体会过这种场景:半夜被监控告警吵醒,打开服务商的状态页确认是不是对方出事了,等恢复之后想翻历史事故记录,发现页面只展示最近几条,要么就是翻起来特别费劲。后来我干脆写了个Pyt…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉