Alternesting , es el acto de tomar una cuerda y anidarla entre corchetes. Así es como alternes una cuerda.
Para una cadena de longitud N , tome los caracteres N centrales y rodeelos entre paréntesis. Entonces, si nuestra cadena era
Hello world!
(12 caracteres), terminaremos con(Hello world!)
Luego, tome los
n-2
caracteres centrales restantes y enciérrelos entre corchetes. En este caso, los 10 caracteres centrales sonello world
, por lo que la siguiente iteración es:(H[ello world]!)
Mientras queden más de dos caracteres en el medio de la cadena, repita los últimos dos pasos, alternando entre
()
y[]
. Aquí están los últimos pasos:(Hello world!) (H[ello world]!) (H[e(llo worl)d]!) (H[e(l[l(o[ w]o)r]l)d]!)
Como solo quedan dos caracteres en el medio en la última iteración, nos detenemos. Nuestra cadena final es
(H[e(l[l(o[ w]o)r]l)d]!)
Observe cómo hay dos caracteres en los corchetes del medio. Esto sucede cuando la entrada tiene una longitud par. Si la entrada
Hello, world!
tuviera una longitud impar (por ejemplo, con una coma agregada), tendríamos solo un carácter en el medio:(H[e(l[l(o[,( )w]o)r]l)d]!)
Para el desafío de hoy, debe escribir un programa o función que tome una cadena como entrada y la alterne, generando la nueva cadena. Puede tomar entrada y salida en cualquier formato razonable que desee. La entrada siempre tendrá al menos un carácter y solo contendrá ASCII imprimible. También puede suponer que la entrada no contendrá paréntesis ni corchetes. Para los idiomas tradicionales, esto no debería importar demasiado, pero podría facilitarlo para algunos idiomas esotéricos.
Como de costumbre, esta es una competencia de código de golf , así que trate de hacer la respuesta más corta posible en el idioma que elija. ¡Que te diviertas!
Prueba IO
#Input #Output
"Alternesting is fun!" --> (A[l(t[e(r[n(e[s(t[in]g) ]i)s] )f]u)n]!)
"PPCG" --> (P[PC]G)
"Code-golf" --> (C[o(d[e(-)g]o)l]f)
"4 8 15 16 23 42" --> (4[ (8[ (1[5( [1]6) ]2)3] )4]2)
"a" --> (a)
"ab" --> (ab)
"abc" --> (a[b]c)
()
) or can we start with brackets ([]
)?
()
HelloWorld
.