通常のブラケット(()
、[]
、<>
とは{}
)しかし、誰かがそれを括弧のような非括弧文字を使用することをお勧めだろうと思った、素晴らしく、明確なです。これらの文字|
と"
があいまいです。たとえば
""""
対応する
(())
または
()()
言うことは不可能です。
曖昧な括弧の種類を混ぜると、物事が面白くなり始めます。たとえば、
"|""||""|"
次のいずれかです
([(([]))]),([()[]()]),([()][()])
仕事
あなたの仕事は、あいまいな文字で作られた文字列を取得し、作成者が意図した可能性のあるすべてのバランスの取れた文字列を出力することです。
交換行うことができ、より具体的にあなたの出力のすべてのバランスの文字列|
のいずれかと[
か]
と"
どちらかと(
か)
。バランスの取れた文字列を2回出力しないでください。
IO
入力として、|
とで構成される文字列を使用する必要があります"
。あなたは以外に二つの異なる文字を選択したい場合|
や"
、あなたがそうすることができる代替品として機能します。バランスの取れた文字列のコンテナを出力する必要があります。あなたは置き換えることを選択すること[]
と、()
(他の2ブラケットのペアを使用して出力して()
、[]
、<>
または{}
あなたが望みます)。出力形式は実行間で一貫している必要があります。
得点
これはコードゴルフですため、回答はバイト単位でスコアリングされ、バイト数は少ない方が良いでしょう。
テストケース
"" -> ["()"]
"|"| -> []
||| -> []
"""" -> ["(())","()()"]
""|| -> ["()[]"]
"|"||"|" -> ["([([])])"]
"|""||""|" -> ["([(([]))])","([()[]()])","([()][()])"]