Introducción
Un cierre palindrómico de una cadena de entrada es el palíndromo más corto que se puede construir a partir de la cadena de entrada donde el palíndromo final comienza con la cadena de entrada.
Para este desafío, consideraremos un cierre palindrómico bidireccional tal que
- El cierre palindrómico izquierdo de una cadena de entrada es el palíndromo más corto posible que comienza con la cadena de entrada.
- El cierre palindrómico derecho de una cadena de entrada es el palíndromo más corto posible que termina con la cadena de entrada.
- El cierre palindrómico bidireccional de una cadena de entrada es el más corto del cierre palindrómico izquierdo o derecho de la cadena de entrada.
Tarea
Tu tarea es simple. Dada una cadena (que consiste solo en ASCII imprimible, nuevas líneas y espacios en blanco), genera el cierre palindrómico bidireccional de esa cadena. En caso de empate, cualquiera de los cierres palindrómicos izquierdo o derecho son salidas válidas.
Puede escribir un programa o función, tomando la entrada a través de STDIN (o la alternativa más cercana), argumento de línea de comando o argumento de función, e imprimiendo el resultado en STDOUT (o la alternativa más cercana) o devolviéndolo como una cadena.
Puede suponer que la entrada nunca será una cadena vacía.
Pocos ejemplos:
<Input> -> <Output>
"abcdef" -> "abcdefedcba" (or "fedcbabcdef")
"abcba" -> "abcba"
"abcb" -> "abcba"
"cbca" -> "acbca"
El crédito de la idea inicial va a VisualMelon, la idea final con la ayuda de Martin y Zgarb
Los términos cierre palindrómico, cierre palindrómico izquierdo y cierre palindrómico derecho se usaron y definieron por primera vez en este documento .