温州网站建设汕头网站建设

张家港贝尔德饮料机械有限公司 2026/09/09 19:36:38

题目:

给你一个字符串s。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。例如,字符串"ababcc"能够被分为["abab", "cc"],但类似["aba", "bcc"]["ab", "ab", "cc"]的划分是非法的。

注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是s

返回一个表示每个字符串片段的长度的列表。

解答:

1️⃣ 问题本质

题目要求把字符串划分成若干连续区间,使得:

每个字母只出现在其中一个区间内

并返回每个区间的长度。


2️⃣ 关键观察

如果某个字母在字符串中最右一次出现的位置pos
那么只要当前区间里包含了这个字母,这个区间最少要延伸到pos

➡️区间的右边界由区间内所有字符的“最后出现位置”的最大值决定


3️⃣ 预处理(核心准备)

先遍历一次字符串,记录:

  • 每个字母最后一次出现的下标

这样后续在遍历时,可以随时知道:

“当前字符最远会把区间拉到哪里”。


4️⃣ 贪心划分区间(核心思想)

从左到右遍历字符串:

  • 维护一个变量right
    表示当前区间必须到达的最右边界

  • 每遇到一个字符:

    • 更新right为当前right和该字符最后出现位置的最大值

  • 当遍历位置i == right时:

    • 说明当前区间内的所有字符都不会再出现在后面

    • 可以安全地切分一个区间

    • 记录区间长度

    • 从下一个位置开始新一段

这是一个一次扫描 + 局部最优即全局最优的贪心过程。

class Solution { public: vector<int> partitionLabels(string s) { int last[26]; vector<int> length; for (int i = 0; i < s.size(); i++) last[s[i] - 'a'] = i; int right = -1; int start = 0; for (int i = 0; i < s.size(); i++) { right = max(right, last[s[i] - 'a']); if (i == right) { length.push_back(i - start + 1); start = i + 1; } } return length; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

互动网站建设莆田网站建设

Arcade-plus谱面编辑器:重新定义音乐游戏创作流程【免费下载链接】Arcade-plusA better utility used to edit and preview aff

2026/06/30 12:49:33

网站建设心得扬州网站建设

JAVA通过高并发架构、物联网集成与智能化算法,为24小时无人自助扫码洗车系统提供了稳定、高效、可扩展的技术底座,推动洗车行业向智能化、无人化转型,具体实现路

2026/06/30 13:27:36

建设厅网站浙江网站建设

一张RS232原理图,藏着多少工业通信的密码?在车间角落的一台老旧PLC上,工程师正用笔记本连着一根灰扑扑的串口线,屏幕上跳出一行行字符

2026/06/30 11:57:58

重庆网站建设郑州网站建设公司

如何快速备份QQ空间:GetQzonehistory完整使用指南【免费下载链接】GetQzonehistory获取QQ空间发布的历史说说项目地址: https://gitcode.com

2026/06/30 11:44:27

长沙企业网站建设网站建设的方案

崩坏星穹铁道全自动辅助工具:三月七小助手功能详解与使用教程【免费下载链接】March7thAssistant🎉 崩坏:星穹铁道全自动 Honkai Star

2026/06/30 11:40:26

婚纱摄影网站建设wap网站建设

随着人工智能的不断发展,越来越多的公司推出了他们的AI模型,用来提高工作效率,解决实际问题。最近,GPT-5.2打工人版和Gemini 3 Pr

2026/06/30 13:20:05

苏州企业网站建设模板网站建设

纪念币预约自动化工具效率提升实战指南【免费下载链接】auto_commemorative_coin_booking项目地址: https://gitcode.com/gh_mirrors/au/aut

2026/06/30 14:16:09

北京网站建设公司海淀网站建设

Miniconda + 国内镜像:轻量高效搭建 Python 开发环境的终极方案在人工智能和数据科学项目中,一个稳定、快速、可复现的开发环境往往是成败的关键。然而&

2026/06/30 12:40:32

宜昌网站建设吉安网站建设

目录 1、环境:2、获取gitlab访问令牌3、dify安装[JSON 处理]插件​4、dify创建工作流应用5、dify详细配置6、校验1、环境dify版本Version 1.5

2026/06/30 10:52:52