Программа курса:
Задача 1: Разбиение строки на наибольшее количество частей
Напишите определение функции partitionLabels(S), которая принимает строку S.
Мы хотим разбить строку S на наибольшее количество частей таким образом, чтобы каждая буква встречалась не более чем в одной части.
Обратите внимание, что разбиение должно производиться так, что результирующая строка после конкатенации всех частей по порядку должна быть равна S.
Функция должна вернуть массив целых чисел, представляющих собой размеры этих частей.
Примеры
Пример 1:
Ввод:s = "ababcbacadefegdehijhklij"
Вывод:[9, 7, 8]
Пояснение:
Разбиение строки s: "ababcbaca", "defegde", "hijhklij".
Каждая буква встречается не более чем в одной части.
Разбиение строки на "ababcbacadefegde" и "hijhklij" неверно, так как получили разбиение s на меньшее количество частей.
Пример 2:
Ввод:s = "eccbbbbdec"
Вывод:[10]
Пояснение:
Разбиение строки s в данном случае возможно только одним способом: вся строка составляет одну часть, так как каждая буква встречается по меньшей мере дважды, перекрываясь с другими.