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