def partition_labels(text):
    last = {char: i for i, char in enumerate(text)}
    output, start, end = [], 0, 0
    for i, char in enumerate(text):
        end = max(end, last[char])
        if i == end:
            output.append(i - start + 1)
            start = i + 1
    return output
