Cuerdas en zig-zag
Dada una cadena y un entero positivo, genera la cadena en un patrón de onda en zig-zag con una amplitud máxima y un espaciado entre caracteres igual al entero.
Esto es similar a esta pregunta pero también incluye el espacio entre caracteres.
Entrada
La entrada puede leerse desde STDIN o tomarse como argumentos de función. La entrada es una cadena sin líneas nuevas y un número entero positivo.
Salida
La salida esperada es la cadena transformada en un patrón de onda en zig-zag, comenzando hacia arriba, con el primer carácter en la línea base. El patrón de onda debe tener una amplitud y espaciado de caracteres igual al entero.
Ejemplos
Entrada
Programming Puzzles & Code Golf
2
Salida
o g s
r g n e e G
P r i P l & d o
a m u z o l
m z C f
Entrada
Programming Puzzles & Code Golf
1
Salida
r a n u e e l
P o r m i g P z l s & C d o f
g m z o G
Este es el código de golf: el programa más corto gana.
Respuestas:
Javascript (ES6),
133132136134 bytesDefine una función anónima. Para llamarlo, agregue
f=
al principio para llamar a la funciónf
. Entonces, se puede probar conconsole.log(f("Programming Puzzles & Code Golf", 2))
¡Gracias a @vihan y @ edc65 por ayudar a salvar algunos bytes! :)
@kvill: el código se ha modificado para abordar el requisito de espacio entre caracteres variable en la especificación. ¡No lo noté al principio!
fuente
keys
ofill
(s,n,o=Array(2*n+1).fill'')=>[...s].map((v,i)=>o=o.map((w,a)=>a-((j=(i+3*n)%(4*n))>2*n?4*n-j:j)?w+" ":w+v))&&o.join''
(llenar y unir usando una cadena de plantilla sin corchetes)J, 75 bytes
Aquí está la función en uso
fuente
Pitón 2, 151
Aquí está mi respuesta usando Python 2:
Salida de muestra:
y
fuente