Ctrl K

Нарезка слова на палиндромы

Средняя
Дано слово word. Разрежьте его на несколько непрерывных кусков так, чтобы каждый кусок был палиндромом — читался одинаково слева направо и справа налево. Отдельная буква тоже палиндром. Верните все возможные способы нарезки. Каждый способ — список кусков в том порядке, в котором они идут в слове. Сами способы можно вернуть в любом порядке.
Пример 1
word="noon" → [['n', 'o', 'o', 'n'], ['n', 'oo', 'n'], ['noon']]

Можно разрезать на буквы, выделить середину «oo» или оставить слово целым: всё слово — палиндром.

Пример 2
word="xyx" → [['x', 'y', 'x'], ['xyx']]

«xy» и «yx» — не палиндромы, поэтому вариантов только два.

Пример 3
word="q" → [['q']]
Ограничения
  • 1 ≤ len(word) ≤ 16
  • word состоит из строчных латинских букв
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиВсе правильные скобочные строки СредняяДва непересекающихся палиндрома СредняяДвоичная строка из степеней пятёрки СредняяВсе способы расставить пробелы СложнаяЛучший набор слов из фишек Сложная
загружаем Python…
Вход
word="noon"
Ожидается
[['n', 'o', 'o', 'n'], ['n', 'oo', 'n'], ['noon']]

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 112 тестов на сервере, включая скрытые.