class Solution:
def partitionLabels(self, S: str) -> List[int]:
res = []
last_map = {}
for i in range(len(S)):
last_map[S[i]] = i
start = 0
while start < len(S):
last = last_map[S[start]]
i = start
while i < last:
if last_map[S[i]] > last:
last = last_map[S[i]] #更新
i += 1
res.append(last-start+1)
start = last+1
return res