Menu
CoddyTech

Partition Labels

Дана строка s из строчных букв. Разбейте её на как можно больше последовательных частей так, чтобы каждая буква встречалась только в одной части: если буква встречается в части, все её вхождения должны быть в этой части. Верните длины частей слева направо.

Функция

partitionLabels(s: string) → integer-array
sstring
строка для обрезки, только строчные буквы
Возвращаетinteger-array
длина каждой части слева направо

Ограничения

  • 1 ≤ s.length ≤ 5 × 104
  • s содержит только строчные английские буквы.
  • Эти части сохраняют свой порядок и вместе составляют всё s, поэтому их длины в сумме равны s.length.

Примеры

Ввод
s = "abacdcefe"
Вывод
[3, 3, 3]
Пояснение
Буквы a находятся на позициях 0 и 2, c — на позициях 3 и 5, а e — на позициях 6 и 8, поэтому разрезы проходят после aba и после cdc. Ни одну часть нельзя разрезать снова, потому что каждая начинается и заканчивается одной и той же буквой.

lock icon+14 скрытых тестов при отправке

Сбросить код
def partitionLabels(s):
    # Напишите код здесь
Тестовые случаи

Случай 1

Случай 2

Случай 3

Ввод

s = "abacdcefe"

Ожидается

[3, 3, 3]