Neste desafio, você deve pensar nas palavras como se fossem elásticos. O que acontece quando você estica um elástico aplicando uma força de tração constante em ambas as extremidades? Cada parte (ou letra, neste caso) do elástico se expandirá, com a expansão mínima nas extremidades e a máxima no centro.
Se a palavra tiver um comprimento ímpar, o caractere central efetivo da palavra será o pivô que divide a palavra em duas metades.
"ABC" -> Left = "A" | Center = "B" | Right = "C"Se a palavra tiver um comprimento par, você considerará duas partes de mesmo comprimento, com o último caractere da metade esquerda e o primeiro caractere da metade direita sendo o centro.
"ABCD" -> Left = "AB" | Right = "CD"Você representará a expansão de uma letra repetindo-a tantas vezes quanto sua posição numérica (ou seja, contando os índices de/até 1, e não a partir de 0 como de costume) em sua metade, com uma ordem crescente na metade esquerda e uma ordem decrescente na metade direita.
Word = "ANNA"
Left = "AN"
Right = "NA"
Left = "A" * 1 + "N" * 2 = "ANN"
Right = "N" * 2 + "A" * 1 = "NNA"
Word = Left + Right = "ANNNNA"Se a palavra tiver um comprimento ímpar, o pivô (o caractere central) será o pico (ou seja, o maior valor) que delimita as duas metades da palavra.
Word = "KAYAK"
Left = "K" * 1 + "A" * 2 = "KAA"
Pivot = "Y" * 3 = "YYY"
Right = "A" * 2 + "K" * 1 = "AAK"
Word = Left + Pivot + Right = "KAAYYYAAK"Dada uma word, implemente uma função que retorne a versão elasticizada da palavra como uma string.
elasticize("ANNA") ➞ "ANNNNA"
elasticize("KAYAK") ➞ "KAAYYYAAK"
elasticize("X") ➞ "X"