分区标签
#python #leetcode #problemsolving

您有一个字符串s。我们想将字符串分配到尽可能多的部分中,以使每个字母最多出现在一部分中。

请注意,该分区已完成,以便在将所有零件串联到顺序之后,结果字符串应为s。

返回代表这些零件大小的整数列表。


class Solution:
    def partitionLabels(self, S: str) -> List[int]:
        count = {}
        res = []
        i, length = 0, len(S)

        for j in range(length):
            c = S[j]
            count[c] = j

        curLen = 0
        goal = 0

        while i < length:
            c = S[i]
            goal = max(goal, count[c])
            curLen += 1

            if goal == i:
                res.append(curLen)
                curLen = 0
            i += 1

        return res