Reglas
El programa debe recibir una cadena / matriz de palabras como entrada. Para cada palabra en la cadena / matriz, reconstruirá la palabra tomando caracteres de forma alterna desde el frente y el reverso de la palabra.
12345678 9 -> 15243687 9.
Luego reorganizará las palabras de manera alterna entre la palabra más antigua y la más reciente en la cadena.
15243 687 9 -> 15243 9 687
Finalmente, reconstruirá la cadena colocando los espacios, las pestañas y las nuevas líneas en los índices donde se ubicaron inicialmente antes de generar el resultado.
12345 678 9-> 15243 687 9 -> 15243 9 687 -> 15243 968 7
La salida debe ser del mismo tipo de datos que la entrada.
Las lagunas estándar están prohibidas
Ejemplos
Entrada:
El rápido zorro marrón salta sobre el perro perezoso.
Salida:
Teh d.ogq kucil yaz bnrwo tehf xoo rvej supmEntrada:
El rápido zorro marrón salta
sobre el perro perezoso.
Salida:
Teh d.ogq kucil yaz bnrwo
tehf xoo rvej supmEntrada:
Aflack
Salida:
Akfcla
Este es el código de golf, por lo que el código más corto gana
fuente
Respuestas:
Jalea ,
15 148 bytesUn enorme ahorro de 6 bytes de Dennis (moviendo el aplanamiento y el molde dentro del enlace 1 no hay necesidad de dividirlos en dos y cabeza, ¡y un aplanamiento ya está allí para que se vuelvan uno!)
(de las dos líneas:
żṚFœs2Ḣ
yÇ€ÇFṁ⁸
)Pruébalo en línea!
Toma una matriz de palabras y devuelve una matriz de palabras nuevas. (El pie de página en TIO llama a esto y une la matriz con espacios para que se imprima bien).
Nota: manejar una sola cadena, dividir en espacios de pestañas y nuevas líneas, luego volver a ensamblar resultó ser bastante complicado; Una vez que vi que una lista de palabras era una opción, ¡las cosas se volvieron mucho más fáciles!
¿Cómo?
fuente
JavaScript (ES6), 89 bytes
Toma y emite una serie de palabras.
Prueba
Mostrar fragmento de código
Versión de cadena, 112 bytes
Toma y emite una cadena.
Prueba
Mostrar fragmento de código
fuente
Perl , 77 bytes
74 bytes de código + 3 bytes para
-0pa
banderas.Pruébalo en línea!
Guardado 8 bytes gracias a un viejo @Ton Hospel 's puesto en el que 'robé'
s/../chop/reg
. (Previamente tuve$c=y///c/2,s/.{$c}$//
)fuente
Perl 6 , 84 bytes
Entradas y salidas de una lista de palabras.
Cómo funciona
Dentro de la lambda, definí otra lambda para realizar la torsión de " tomar caracteres de forma alterna desde el frente y la espalda ":
Esto funciona porque el
xx
operador se parece más a una macro que a una función, ya que proporciona una evaluación mágica perezosa.Luego en la lambda principal:
Perl 6 , 87 bytes
Esta es una variación de lo anterior, que ingresa y emite una cadena, conservando diferentes caracteres de espacio en blanco.
fuente
Haskell ,
115 95 93 9895 bytesLlamada con
(!)=<<(f=<<).f.words $ "some string"
.Pruébalo en línea!Gracias a @nimi por señalar que leí mal el desafío anteriormente.
La función
f
realiza la torsión en una lista, por lo que puede usarse en cadenas (lista de caracteres) y una lista de cadenas.a!b
inserta el espacio en blanco de la cadenab
en la cadenaa
.(!)=<<(f=<<).f.words
es equivalente a\s0 -> (concatMap f . f . words $ s0) ! s0
:fuente