题目

解法
cpp
class Solution:
def partitionLabels(self, s: str) -> List[int]:
#记录每个字母的最后出现的下标i
last = {}
for i,c in enumerate(str):
last.append(c:i)
ans = []
start = end = 0
for i, c in enumerate(s):
end = max(end, last[c])#不断拉长当前区间的最后的位置
if end == i:#如果扫描到了,说明当前区间所有字母的最后位置都被包含到了 则区间划分好了
ans.append(end - start + 1)
start = i+1
return ans