Pertimbangkan string kurung yang tidak kosong dengan benar:
(()(()())()((())))(())
Kita dapat membayangkan bahwa setiap pasangan kurung mewakili cincin dalam konstruksi teleskopik yang runtuh . Jadi mari kita memperluas teleskop:
( )( )
()( )()( ) ()
()() ( )
()
Cara lain untuk melihatnya adalah bahwa tanda kurung di kedalaman n dipindahkan ke garis n , sambil menjaga posisi horizontal mereka.
Tugas Anda adalah mengambil string kurung yang seimbang dan menghasilkan versi yang diperluas.
Anda dapat menulis suatu program atau fungsi, mengambil input melalui STDIN (atau yang setara terdekat), argumen baris perintah atau parameter fungsi, dan menghasilkan output melalui STDOUT (atau yang terdekat terdekat), mengembalikan nilai atau parameter fungsi (keluar).
Anda dapat mengasumsikan bahwa string input valid, yaitu hanya terdiri tanda kurung, yang seimbang dengan benar.
Anda dapat mencetak spasi tambahan di setiap baris, tetapi tidak lebih banyak spasi dari yang diperlukan. Total garis harus tidak lebih dari dua kali panjang string input. Anda dapat secara opsional mencetak satu baris baru.
Contohnya
Selain contoh di atas, berikut adalah beberapa kasus uji lagi (input dan output dipisahkan oleh garis kosong).
()
()
(((())))
( )
( )
( )
()
()(())((()))(())()
()( )( )( )()
() ( ) ()
()
((()())()(()(())()))
( )
( )()( )
()() ()( )()
()
Tantangan Terkait:
- String Topografi , yang meminta Anda untuk menghasilkan apa yang pada dasarnya adalah pelengkap dari output dalam tantangan ini.
- Code Explanation Formatter , generalisasi luas gagasan dalam tantangan ini, baru-baru ini diposting oleh PhiNotPi. (Sebenarnya, deskripsi asli PhiNotPi tentang idenya adalah yang menginspirasi tantangan ini.)
Papan peringkat
Huh, ini mendapat cukup banyak partisipasi, jadi di sini ada Stack Snippet untuk menghasilkan leaderboard biasa dan gambaran umum pemenang berdasarkan bahasa.
Untuk memastikan bahwa jawaban Anda muncul, silakan mulai jawaban Anda dengan tajuk utama, menggunakan templat Penurunan harga berikut:
# Language Name, N bytes
di mana N
ukuran kiriman Anda. Jika Anda meningkatkan skor Anda, Anda bisa menyimpan skor lama di headline, dengan mencoretnya. Misalnya:
# Ruby, <s>104</s> <s>101</s> 96 bytes