class Solution:
def partitionLabels(self, s: str) -> List[int]:
res = []
#先记录每个字母的最远位置
n = len(s)
record = [0]*26
for i in range(n):
record[ord(s[i])-ord('a')] = i
#开始遍历寻找分割线
l,r = 0,0 #l记录当前子串的第一个位置,r记录当前子串最后一个位置
for i in range(n):
r = max(r,record[ord(s[i])-ord('a')])
#i遍历到r时,说明当前子串满足条件
if i == r:
res.append(r-l+1)
#这句要在if中
l = r+1
return res
763. 划分字母区间
最新推荐文章于 2024-10-20 10:43:07 发布