763. 划分字母区间
题目描述
代码实现
class Solution:
def partitionLabels(self, s: str) -> List[int]:
# 获取每个字母最后结束的位置
last = [0] * 26
for i, ch in enumerate(s):
last[ord(ch) - ord("a")] = i
prt = []
start = end = 0
for i, ch in enumerate(s):
# 确定途径字母中最大结束位置
end = max(end, last[ord(ch) - ord("a")])
if i == end:
prt.append(end - start + 1)
start = end + 1
return prt