Разбиение строки на палиндромы

Дана строка s. Необходимо разбить s на подстроки так, чтобы каждая подстрока являлась палиндромом. Верните все возможные варианты такого разбиения в формате подстрок, разделённых символом |. Порядок, в котором выводятся эти разбиения, может быть любым.
Палиндром — это строка, которая одинаково читается слева направо и справа налево.

Входные данные

Входные данные состоят из одной строки s (1 ≤ |s| ≤ 16), содержащей только строчные английские буквы.

Выходные данные

Верните список всех возможных разбиений s на палиндромы. Каждое разбиение должно быть представлено в виде строки, в которой подстроки соединены символом |. Порядок разбиений в выходном списке может быть произвольным.

Примеры

Входные данные
Выходные данные
aab
a
aba
a

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue