String zig-zag
Diberikan string dan integer positif, output string dalam pola gelombang zig-zag dengan amplitudo puncak dan jarak karakter yang sama dengan integer.
Ini mirip dengan pertanyaan ini tetapi juga termasuk spasi karakter.
Memasukkan
Input dapat dibaca dari STDIN atau diambil sebagai argumen fungsi. Input adalah string tanpa baris baru dan bilangan bulat positif.
Keluaran
Output yang diharapkan adalah string yang diubah menjadi pola gelombang zig-zag - mulai dari atas - dengan karakter pertama pada garis dasar. Derai gelombang harus memiliki amplitudo dan jarak karakter yang sama dengan integer.
Contohnya
Memasukkan
Programming Puzzles & Code Golf
2
Keluaran
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
Memasukkan
Programming Puzzles & Code Golf
1
Keluaran
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
Ini adalah kode golf - program yang paling cepat menang.
Jawaban:
Javascript (ES6),
133132136134 byteMenentukan fungsi anonim. Untuk memanggilnya, tambahkan
f=
ke awal untuk memanggil fungsif
. Kemudian, dapat diuji denganconsole.log(f("Programming Puzzles & Code Golf", 2))
Terima kasih kepada @vihan dan @ edc65 karena telah membantu menghemat beberapa byte! :)
@ kvill: Kode telah dimodifikasi untuk memenuhi persyaratan spasi karakter variabel dalam spec. Tidak memperhatikan itu pada awalnya!
sumber
keys
ataufill
(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''
(isi dan gabung menggunakan string template tanpa tanda kurung)J, 75 byte
Berikut adalah fungsi yang digunakan
sumber
Python 2, 151
Ini jawaban saya menggunakan Python 2:
Output sampel:
dan
sumber