Assemblage récursif d’un palindrome à partir de sous-chaînes

Rust Hard functions

Tâche «Assemblage récursif d’un palindrome à partir de sous-chaînes»

Soit une chaîne S composée de lettres latines minuscules. Il faut découper récursivement (à l’aide d’une fonction) la chaîne initiale en un nombre minimal de sous-chaînes palindromiques (chaque sous-chaîne doit être un palindrome) et les afficher séparées par un espace. Si le découpage est impossible (par exemple, la chaîne est vide), afficher "NO". Contraintes : longueur de S de 1 à 1000 caractères. Il est garanti qu’une réponse existe.

Format d\ entrée

Une seule chaîne S (1 ≤ |S| ≤ 1000).

Format de sortie

Une chaîne contenant les sous-chaînes palindromiques séparées par un espace. Si la chaîne d’entrée est vide, afficher "NO".

Exemples

Exemple 1

ENTRÉE
racecar
SORTIE
racecar

Exemple 2

ENTRÉE
aab
SORTIE
aa b
main.rs