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

河南龙羽宏电广告有限公司 2026/09/09 20:08:05

题目:

给你一个字符串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; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

电器网站建设济南营销型网站建设

想象一下你正在看一部精彩的电影。好的导演会在同一时刻让你注意到:主角脸上的微妙表情背景音乐的紧张节奏远处逐渐逼近的危险台词中的双关含义你并不是只盯着一个地方看,而是同时关注

2026/06/30 12:47:03

郴州网站建设南宁网站建设公司

夸克网盘自动化管理:告别手动转存的智能解决方案【免费下载链接】quark-auto-save夸克网盘签到、自动转存、命名整理、发推送提醒和刷新媒体库一条龙项目地址: https://gi

2026/06/30 12:56:03

湖南营销型网站建设义乌网站建设

如何在5分钟内彻底解决macOS上res-downloader的配置难题【免费下载链接】res-downloader资源下载器、网络资源嗅探,支持微信视频号下载、网页抖音无水印下载、网页

2026/06/30 10:17:49

网站建设论坛摄影网站建设

Linly-Talker MiniMax语音接口对接进展在虚拟主播、智能客服和数字员工逐渐成为企业标配的今天,如何让一个“数字人”真正像真人一样自然地听、说、表达,是技术落

2026/06/30 12:59:33

宝安网站建设网站建设首页

智慧职教自动化学习方案:3分钟配置完整指南解放90%学习时间【免费下载链接】hcqHome简单好用的刷课脚本[支持平台:职教云,智慧职教,资源库]项目地址: https://gitcod

2026/06/30 12:30:02

专业网站建设公司胶州网站建设

一、引言网络钓鱼攻击现状分析CNNIC公共互联网反网络钓鱼工作组简介“网络钓鱼攻防演练”的目标与意义dnstwist工具介绍及其在网络钓鱼防御中的作用二、准备工作安装环境准备操作系统要求Python版

2026/06/30 13:43:37

龙岗网站建设广州市网站建设

第一章:C# 12顶级语句的革命性演进C# 12 对顶级语句(Top-Level Statements)进行了重大优化,使其更简洁、高效

2026/06/30 10:46:21

中国建设银行网站网站建设团队

PyTorch-CUDA-v2.9 镜像中 Jupyter Lab 的完整使用实践在深度学习项目开发中,最让人头疼的往往不是模型设计本身,而是环境配置——“为什么代码在我机

2026/06/30 13:44:07

网站制作建设教育网站建设

一、什么是网络安全网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。无

2026/06/30 13:19:35

品牌网站建设网站建设套餐

CTF流量分析实战指南:从手足无措到游刃有余的进阶之路【免费下载链接】CTF-NetA项目地址: https://gitcode.com/gh_mirrors/ct/CTF-NetA还在

2026/06/30 11:46:57