Cordas em zig-zag
Dada uma sequência e um número inteiro positivo, produza a sequência em um padrão de onda em zig-zag com uma amplitude de pico e espaçamento de caracteres igual ao número inteiro.
Isso é semelhante a esta pergunta, mas também inclui espaçamento entre caracteres.
Entrada
A entrada pode ser lida em STDIN ou tomada como argumentos de função. Entrada é uma sequência sem novas linhas e um número inteiro positivo.
Resultado
A saída esperada é a sequência transformada em um padrão de onda em zig-zag - começando para cima - com o primeiro caractere na linha de base. O padrão de onda deve ter uma amplitude e espaçamento de caracteres igual ao número inteiro.
Exemplos
Entrada
Programming Puzzles & Code Golf
2
Resultado
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
Resultado
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 é o código de golfe - o programa mais curto vence.
Respostas:
Javascript (ES6),
133132136134 bytesDefine uma função anônima. Para chamá-lo, adicione
f=
ao início a chamada da funçãof
. Em seguida, pode ser testado comconsole.log(f("Programming Puzzles & Code Golf", 2))
Obrigado a @vihan e @ edc65 por ajudar a economizar alguns bytes! :)
@kvill: O código foi modificado para atender ao requisito de espaçamento de caracteres variável na especificação. Não percebeu isso no começo!
fonte
keys
oufill
(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''
(preenchimento e juntar-se usando a corda modelo sem colchetes)J, 75 bytes
Aqui está a função em uso
fonte
Python 2, 151
Aqui está a minha resposta usando Python 2:
Saída de amostra:
e
fonte