Bergantian , adalah tindakan mengambil string dan bersarang di kurung bergantian. Inilah cara Anda mengganti string.
Untuk string dengan panjang N , ambil karakter tengah N , dan mengelilingi mereka dalam tanda kurung. Jadi jika string kami adalah
Hello world!
(12 karakter), kami akan berakhir dengan(Hello world!)
Kemudian, ambil
n-2
karakter tengah yang tersisa , dan mengelilinginya dalam tanda kurung. Dalam hal ini, 10 karakter tengah adalahello world
, jadi iterasi berikutnya adalah:(H[ello world]!)
Selama masih ada lebih dari dua karakter di tengah-tengah string, ulangi dua langkah terakhir, bergantian antara
()
dan[]
. Inilah langkah terakhir:(Hello world!) (H[ello world]!) (H[e(llo worl)d]!) (H[e(l[l(o[ w]o)r]l)d]!)
Karena hanya ada dua karakter yang tersisa di tengah pada iterasi terakhir, kami berhenti. String terakhir kami adalah
(H[e(l[l(o[ w]o)r]l)d]!)
Perhatikan bagaimana ada dua karakter di tanda kurung tengah. Ini terjadi ketika input panjangnya genap. Jika input panjangnya aneh (misalnya,
Hello, world!
dengan koma ditambahkan), kami hanya akan memiliki satu karakter di tengah:(H[e(l[l(o[,( )w]o)r]l)d]!)
Untuk tantangan hari ini, Anda harus menulis sebuah program atau fungsi yang mengambil string sebagai input, dan memundangnya, menghasilkan string baru. Anda dapat mengambil input dan output dalam format wajar apa pun yang Anda suka. Input akan selalu setidaknya sepanjang satu karakter, dan hanya akan berisi ASCII yang dapat dicetak. Anda juga dapat mengasumsikan bahwa input tidak akan mengandung tanda kurung atau tanda kurung. Untuk bahasa tradisional, ini seharusnya tidak terlalu penting, tetapi mungkin membuatnya lebih mudah untuk beberapa bahasa esoterik.
Seperti biasa, ini adalah kompetisi kode-golf , jadi cobalah membuat jawaban sesingkat mungkin dalam bahasa pilihan Anda. Selamat bersenang-senang!
Tes IO
#Input #Output
"Alternesting is fun!" --> (A[l(t[e(r[n(e[s(t[in]g) ]i)s] )f]u)n]!)
"PPCG" --> (P[PC]G)
"Code-golf" --> (C[o(d[e(-)g]o)l]f)
"4 8 15 16 23 42" --> (4[ (8[ (1[5( [1]6) ]2)3] )4]2)
"a" --> (a)
"ab" --> (ab)
"abc" --> (a[b]c)
()
) atau bisakah kita mulai dengan tanda kurung ( []
)?
()
HelloWorld
.