Tantangan:
Memasukkan:
Anda mengambil dua input:
- Sebuah string yang hanya berisi ASCII yang dapat dicetak (tidak termasuk spasi, tab, atau baris baru)
- Karakter ASCII yang dapat dicetak
Keluaran:
Baris pertama akan berisi string-input. Setiap i
kemunculan pertama -modulo-3 dari karakter ini akan bergerak ke arah Tenggara; setiap i
-modulo-3 detik akan bergerak ke arah Selatan; dan setiap i
kejadian ketiga -modulo-3 akan bergerak ke arah Barat Daya. Anda akan melanjutkan sampai karakter akan berada pada posisi awal awal mereka lagi (yang berarti akan membungkus dari satu sisi ke sisi lain jika perlu), dan kemudian Anda akan mencetak baris terakhir dengan string-input lagi ke selesaikan itu. (Perhatikan bahwa semua kasus uji akan berakhir pada input awal setelah paling banyak length(input)
baris, termasuk baris yang mengandung input tambahan. Akan lebih cepat, seperti yang terlihat dalam kasus uji pertama di bawah ini, dengan panjang 14, tetapi berakhir setelah 9.)
Ini semua mungkin sangat kabur, jadi di sini sebuah contoh:
Uji kasus 1:
Input string: Input "This_is_a_test"
karakter:'s'
Keluaran:
This_is_a_test
s s s
ss s
s s
sss
sss
s s
ss s
s s s
This_is_a_test
Ini adalah test case yang sama dengan jalur berwarna ketiganya s
:
di mana yang pertama 's'
mengikuti jalur hijau di arah Tenggara; yang kedua 's'
mengikuti jalur kuning ke arah Selatan; dan yang ketiga 's'
mengikuti jalur biru muda ke arah Barat Daya. (Jika akan ada yang keempat 's'
itu akan pergi ke arah Tenggara lagi, yang dapat dilihat dalam beberapa kasus uji lainnya di bawah ini.)
Aturan tantangan:
- Input hanya akan berisi ASCII yang dapat dicetak (tidak termasuk spasi, tab, dan baris baru)
- Format I / O fleksibel. Dapat berupa string yang dibatasi baris baru, matriks karakter, dll. Panggilan Anda.
- Ada kemungkinan bahwa karakter yang diberikan tidak ada dalam string, dalam hal ini Anda diizinkan untuk output-string input sekali atau dua kali (yaitu
"test", 'a'
dapat memiliki salah satu dari ini sebagai output yang mungkin:"test\ntest"
/"test"
). - Ruang pemimpin adalah wajib; spasi tambahan adalah opsional. Satu atau beberapa baris baru yang mengarah / tertinggal diizinkan.
Aturan umum:
- Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang.
Jangan biarkan bahasa kode-golf mencegah Anda memposting jawaban dengan bahasa non-codegolf. Cobalah untuk memberikan jawaban sesingkat mungkin untuk bahasa pemrograman 'apa saja'. - Aturan standar berlaku untuk jawaban Anda, jadi Anda diperbolehkan menggunakan STDIN / STDOUT, fungsi / metode dengan parameter yang tepat dan tipe pengembalian, program lengkap. Panggilanmu.
- Celah default tidak diperbolehkan.
- Jika memungkinkan, silakan tambahkan tautan dengan tes untuk kode Anda.
- Juga, silakan tambahkan penjelasan jika perlu.
Uji kasus / lebih banyak contoh:
Uji kasus 2:
Input string: Input "abcabcabcabcabc"
karakter:'b'
Keluaran:
abcabcabcabcabc
b b b b b
bbb bb
b b
bbb bb
b b b b b
b b b b
b b b b b
bb b bb
b b b
bb bbb
b b bbb
b b b b
b bb bb
b b bb b
abcabcabcabcabc
Berikut ini adalah kasus uji yang sama dengan jalur berwarna lima a
:
Uji kasus 3:
Input string: Input "only_two_paths?"
karakter:'o'
Keluaran:
only_two_paths?
o o
o o
o o
o o
o o
oo
o
oo
o o
o o
o o
o o
o o
o o
only_two_paths?
Ini adalah test case yang sama dengan jalur berwarna keduanya o
:
Uji kasus 4:
Input string: "lollollollollol"
Input karakter:'l'
Keluaran:
lollollollollol
lll ll ll
ll ll ll
l ll ll ll ll
lll l ll l ll
llllll ll ll
l l ll ll
ll lll ll
l l l lll ll l
ll l ll l l
l l l l llll l
ll lll lll
l l l ll
ll lll lllll
l l l ll l ll
lollollollollol
Berikut ini adalah kasus uji yang sama dengan jalur berwarna sepuluh l
:
Uji kasus 5:
Input string: "AbCdEeDcBaAbCdEeDcBa_CCCCC"
Input karakter:'C'
Keluaran:
AbCdEeDcBaAbCdEeDcBa_CCCCC
C C C C C
C C C C CCC
C C C C C C C
C C C C C C C
C C C C C C C
C C C C C C C
C C C C C C C
C C C CC C C
C C CC C C
C C CC C C
C C CC C
CC CC C C
CC CC C C
C C CC C C
C C CC C C C
C C C C C C
C C CC C C C
C C C C C C C
C C C C C C C
C C C C C CC
C C C C C C
C C C C CCC
C C C CCCC
C C C C
C C CCCCC
AbCdEeDcBaAbCdEeDcBa_CCCCC
Ini adalah test case yang sama dengan jalur berwarna ketujuh C
:
Uji kasus 6:
Input string: "XyX"
Input karakter:'X'
Keluaran:
XyX
XX
X
XyX
Ini adalah test case yang sama dengan jalur berwarna keduanya X
:
Uji kasus 7:
Input string: "aaaa"
Input karakter:'a'
Keluaran:
aaaa
aa
aaa
aaa
aaaa
Ini adalah test case yang sama dengan jalur berwarna dari empat a
:
length(input)
semuanya cocok lagi, tetapi bisa lebih cepat setelah ujian pertama terbukti. Tapi sepertinya Anda memang benar tentang kelipatan 3 bagian (walaupun saya tidak 100% yakin).