Обычные скобки ( ()
, []
, <>
и {}
) хороши и однозначна, однако кто - то думал , что это будет идея хорошо использовать символы не кронштейн в скобках. Эти персонажи, |
и "
, неоднозначны. Например, делает
""""
соответствовать
(())
или
()()
Невозможно сказать.
Вещи начинают становиться интересными, когда вы смешиваете, например, неоднозначные скобки
"|""||""|"
Может быть любой из следующих
([(([]))]),([()[]()]),([()][()])
задача
Ваша задача - взять строку из неоднозначных символов и вывести все возможные сбалансированные строки, которые мог задумать автор.
Более конкретно, вы выводите все сбалансированные строки, которые можно сделать, заменяя |
либо либо, [
либо ]
и "
либо (
или )
. Вы не должны выводить какую-либо сбалансированную строку дважды.
IO
В качестве входных данных вы должны взять строку, состоящую из |
и "
. Если вы хотите выбрать два отличных символа, отличных от |
и, "
в качестве замены, вы можете сделать это. Вы должны вывести контейнер сбалансированных строк. Вы можете заменить []
и ()
на выходе с любыми другими двумя парами скобок ( ()
, []
, <>
или {}
) вы хотите. Ваш выходной формат должен быть одинаковым во всех сериях.
счет
Это код-гольф, поэтому ответы будут оцениваться в байтах, причем меньшее количество байтов будет лучше.
Контрольные примеры
"" -> ["()"]
"|"| -> []
||| -> []
"""" -> ["(())","()()"]
""|| -> ["()[]"]
"|"||"|" -> ["([([])])"]
"|""||""|" -> ["([(([]))])","([()[]()])","([()][()])"]