Tantangan Anda adalah untuk memperluas beberapa tanda kurung di input program seperti yang ditunjukkan:
- Temukan string di antara dua tanda kurung yang cocok
[
dan]
, dengan satu digit n setelah braket penutup. - Lepaskan kurung.
- Ganti s dengan dirinya sendiri berulang kali n . (Jika n adalah 0, cukup hapus s .)
- Lanjutkan ke langkah 1 hingga tidak ada lagi tanda kurung yang cocok di input.
Aturan dan klarifikasi tambahan:
- Anda akan mengambil input dan memberikan output melalui segala cara yang diizinkan.
- Baris baru yang tertinggal di output diizinkan.
- Anda hanya perlu menangani ASCII yang dapat dicetak dalam input.
- Anda dapat berasumsi bahwa semua tanda kurung cocok, artinya Anda tidak akan pernah menerima input
[]]]]
atau[[[[]
. - Anda dapat mengasumsikan bahwa setiap braket penutup
]
memiliki angka setelahnya.
Kasus uji:
Input -> Output
[Foo[Bar]3]2 -> FooBarBarBarFooBarBarBar
[one]1[two]2[three]3 -> onetwotwothreethreethree
[three[two[one]1]2]3 -> threetwoonetwoonethreetwoonetwoonethreetwoonetwoone
[!@#[$%^[&*(]2]2]2 -> !@#$%^&*(&*($%^&*(&*(!@#$%^&*(&*($%^&*(&*(
[[foo bar baz]1]1 -> foo bar baz
[only once]12 -> only once2
[only twice]23456789 -> only twiceonly twice3456789
[remove me!]0 ->
before [in ]2after -> before in in after
Karena ini adalah kode-golf , jawaban terpendek dalam setiap bahasa menang. Semoga berhasil!
s
tidak boleh mengandung tanda kurung lain? Misalnya, mencoba menyelesaikan [Foo[Bar]3]2
dengan memperluas string Foo[Bar
3 kali akan menghasilkan keadaan yang tidak validFoo[BarFoo[BarFoo[Bar]2
[a[b]2c[d]2e]2
? Anda dapatkan abbcddeabbcdde
dengan memperluas b
dan d
pertama, tetapi ababcdbcdedbabcdbcdede
dengan memperluas a[b
dan d]2e
pertama.