Palabras elásticas
En este desafío, debes imaginar que las palabras son elásticas. ¿Qué ocurre cuando estiras una banda elástica aplicando una fuerza de tracción constante en ambos extremos? Cada parte (o letra, en este caso) se expandirá: la expansión será mínima en los extremos y máxima en el centro.
Si la palabra tiene una longitud impar, el carácter central será el pivote que la divide en dos mitades.
"ABC" -> Left = "A" | Center = "B" | Right = "C"Si la palabra tiene una longitud par, considerarás dos mitades de igual longitud. El último carácter de la mitad izquierda y el primero de la mitad derecha formarán el centro.
"ABCD" -> Left = "AB" | Right = "CD"Para representar la expansión de una letra, repítela tantas veces como indique su posición numérica dentro de su mitad (es decir, contando los índices desde / hasta 1, y no desde 0 como suele hacerse). Las posiciones aumentan en la mitad izquierda y disminuyen en la mitad derecha.
Word = "ANNA"
Left = "AN"
Right = "NA"
Left = "A" * 1 + "N" * 2 = "ANN"
Right = "N" * 2 + "A" * 1 = "NNA"
Word = Left + Right = "ANNNNA"Si la palabra tiene una longitud impar, el pivote (el carácter central) será el punto máximo, es decir, el valor más alto que separa las dos mitades de la palabra.
Word = "KAYAK"
Left = "K" * 1 + "A" * 2 = "KAA"
Pivot = "Y" * 3 = "YYY"
Right = "A" * 2 + "K" * 1 = "AAK"
Word = Left + Pivot + Right = "KAAYYYAAK"Dada una word, implementa una función que devuelva la versión estirada de la palabra como una cadena de texto.
Ejemplos
elasticize("ANNA") // "ANNNNA"
elasticize("KAYAK") // "KAAYYYAAK"
elasticize("X") // "X"Notas
- Para las palabras de menos de tres caracteres, la función debe devolver la misma palabra, ya que no se puede aplicar tracción.
- Recuerda: en la mitad izquierda, las posiciones de los caracteres aumentan a partir de 1; en la mitad derecha, disminuyen nuevamente hasta 1.