本题等价于经典的 “Partition Labels” 问题。
核心贪心思路:对于每个字符,预先记录其在字符串中最后一次出现的位置;然后从左到右扫描,维护当前分片的区间端点 end。遇到字符 c 时,将 end 更新为 max(end, last[c])。若扫描位置 i 正好等于 end,则可在此处分割一个片段。
公司运动协会正在举办打气球游戏。墙上从左到右排列着一串气球,每个气球的颜色由一个小写英文字母表示,整串气球对应一个字符串 s。
游戏要求将这串气球切分成若干个连续片段。让每种相同颜色的所有气球都出现在同一个片段中。
如果有多种满足条件的切分方式,需要选择片段数量最多的那种。请针对最优切分,计算每个片段包含的气球个数。
约束条件:
字符串 s 的长度在 1 到 500 之间。
© CodeFun2000 · 使用条款
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册