Kurung Normal ( ()
, []
, <>
dan {}
) bagus dan tidak ambigu, namun seseorang berpikir itu akan menjadi ide yang baik untuk menggunakan karakter non bracket sebagai tanda kurung. Karakter-karakter ini, |
dan "
, bersifat ambigu. Misalnya tidak
""""
sesuai dengan
(())
atau
()()
Tidak mungkin dikatakan.
Hal-hal mulai menjadi menarik ketika Anda mencampur jenis kurung ambigu, misalnya
"|""||""|"
Bisa salah satu dari yang berikut ini
([(([]))]),([()[]()]),([()][()])
Tugas
Tugas Anda adalah mengambil string yang terbuat dari karakter yang ambigu dan menghasilkan semua string seimbang yang mungkin dimaksudkan penulis.
Lebih konkret Anda keluaran semua string yang seimbang yang dapat dibuat mengganti |
dengan baik [
atau ]
dan "
dengan baik (
atau )
. Anda seharusnya tidak menghasilkan string seimbang dua kali.
IO
Sebagai input, Anda harus mengambil string yang terdiri dari |
dan "
. Jika Anda ingin memilih dua karakter berbeda selain |
dan "
berfungsi sebagai pengganti, Anda dapat melakukannya. Anda harus menghasilkan wadah string yang seimbang. Anda dapat memilih untuk mengganti []
dan ()
di output dengan dua pasang braket lainnya ( ()
, []
, <>
atau {}
) yang Anda inginkan. Format output Anda harus konsisten di seluruh proses.
Mencetak gol
Ini adalah kode-golf sehingga jawaban akan dicetak dalam byte dengan lebih sedikit byte yang lebih baik.
Uji kasus
"" -> ["()"]
"|"| -> []
||| -> []
"""" -> ["(())","()()"]
""|| -> ["()[]"]
"|"||"|" -> ["([([])])"]
"|""||""|" -> ["([(([]))])","([()[]()])","([()][()])"]