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