introduction
Une fermeture palindromique d'une chaîne d'entrée est le palindrome le plus court qui peut être construit à partir de la chaîne d'entrée où le palindrome final commence par la chaîne d'entrée.
Pour ce défi, nous envisagerons une fermeture palindromique bidirectionnelle telle que
- La fermeture palindromique gauche d'une chaîne d'entrée est le palindrome le plus court possible qui commence par la chaîne d'entrée.
- Palindromique droit La fermeture d'une chaîne d'entrée est le palindrome le plus court possible qui se termine par la chaîne d'entrée.
- La fermeture palindromique bidirectionnelle d'une chaîne d'entrée est la plus courte de la fermeture palindromique gauche ou droite de la chaîne d'entrée.
Tâche
Votre tâche est simple. Étant donné une chaîne (composée uniquement d'ASCII imprimables, de nouvelles lignes et d'espaces blancs), affichez la fermeture palindromique bidirectionnelle de cette chaîne. En cas d'égalité, les fermetures palindromiques gauche ou droite sont une sortie valide.
Vous pouvez écrire un programme ou une fonction, en saisissant les données via STDIN (ou l'alternative la plus proche), l'argument de ligne de commande ou l'argument de la fonction, et en imprimant le résultat dans STDOUT (ou l'alternative la plus proche) ou en le renvoyant sous forme de chaîne.
Vous pouvez supposer que l'entrée ne sera jamais une chaîne vide.
Quelques exemples:
<Input> -> <Output>
"abcdef" -> "abcdefedcba" (or "fedcbabcdef")
"abcba" -> "abcba"
"abcb" -> "abcba"
"cbca" -> "acbca"
Le crédit de l'idée initiale revient à VisualMelon, idée finale avec l'aide de Martin et Zgarb
Les termes fermeture palindromique, fermeture pallindromique gauche et fermeture palindromique droite ont d'abord été utilisés et définis par cet article .