1class Solution:2def partitionLabels(self, s: str) -> List[int]:3d = defaultdict(list)4for i, char in enumerate(s):5d[char].append(i)6nums = []78for v in d.values():9nums.append([v[0], v[-1]])1011start = nums[0][0]12maxIndex = nums[0][1]13ans = []14for i in range(1, len(nums)):15if nums[i][0] <= maxIndex:16maxIndex = max(maxIndex, nums[i][1])17else:18ans.append(maxIndex - start + 1)19start = nums[i][0]20maxIndex = nums[i][1]21ans.append(maxIndex - start + 1)22# print(ans)23return ans