Introdução
Para quem não sabe, um palíndromo é quando uma string é igual à string de trás para a frente (com exceção de interpunções, espaços etc.). Um exemplo de um palíndromo é:
abcdcba
Se você reverter isso, você terminará com:
abcdcba
Qual é o mesmo. Portanto, chamamos isso de palíndromo. Para palindromizar as coisas, vamos dar uma olhada no exemplo de uma string:
adbcb
Este não é um palíndromo. Para palindromizar isso, precisamos mesclar a sequência invertida na sequência inicial à direita da sequência inicial , deixando ambas as versões intactas. Quanto menor, melhor.
A primeira coisa que podemos tentar é o seguinte:
adbcb
bcbda
^^ ^^
Nem todos os caracteres correspondem, portanto, essa não é a posição correta para a sequência invertida. Demos um passo à direita:
adbcb
bcbda
^^^^
Isso também não corresponde a todos os caracteres. Vamos mais um passo à direita:
adbcb
bcbda
Desta vez, todos os caracteres correspondem . Podemos mesclar as duas strings deixando a intacta . O resultado final é:
adbcbda
Esta é a sequência palindromizada .
A tarefa
Dada uma sequência (com pelo menos um caractere) contendo apenas letras minúsculas (ou maiúsculas, se for melhor), produza a sequência palindromizada .
Casos de teste
Input Output
abcb abcba
hello hellolleh
bonobo bonobonob
radar radar
hex hexeh
Isso é código-golfe , então a submissão com a menor quantidade de bytes ganha!
obonobo
seria uma solução melhor para o caso de teste.
bono b o nob
é uma frase inteira. Qual é a diferença entre Deus e Bono? Deus não vaguear Dublin fingindo ser Bono ;-)