公司运动协会正在举办打气球游戏。打气球游戏规则如下:
墙上有一串各种颜色的气球,我们要给他尽可能多的分组,让相同颜色的气球在同一组内。
而且划分完的气球片段按顺序连接起来仍然是原始气球串
请返回一个列表表示划分完的气球片段长度,请注意,如果划分的片段有多个,各个片段之间以逗号和空格分割。
本题等价于经典的 “Partition Labels” 问题。
核心贪心思路:对于每个字符,预先记录其在字符串中最后一次出现的位置;然后从左到右扫描,维护当前分片的区间端点 end
。遇到字符 c
时,将 end
更新为 max(end, last[c])
。若扫描位置 i
正好等于 end
,则可在此处分割一个片段。
last[c]
。