Кто-то дал нам строку, но все символы в скобках были заменены на обычные, и мы не знаем, какие или даже сколько их было. Все, что мы знаем, это то, что если бы L1,L2,L3,...,LNбыли разные виды левых скобок и R1,R2,R3,...,RNбыли разные соответствующие виды правых скобок, причем все они отличались друг от друга (2N разных символов скобок), строка была бы действительной, если бы она была одной из (+ - нормальная конкатенация строк):
L1+X+R1,L2+X+R2...,,LN+X+RNгдеXдопустимая строка,X+YгдеXи гдеYдопустимы строки,Любой отдельный символ, который не является символом скобки.
Пустая строка
Мы знаем, что они начали с правильной строки, прежде чем сменили скобки, и они не изменили их на символы, которые уже существовали в строке. По крайней мере одна пара существовала для каждой скобки. Можете ли вы восстановить, какие символы изначально были парами левой и правой скобок (найти Liи Riвыполнить заданные условия)?
Выведите пары символов, которые были в скобках. Например, если на (){}[]самом деле это были символы в скобках, вы можете вывести (){}[]или {}[]()или [](){}, и т. Д. Для строки может быть несколько способов сделать это, вам нужно только вернуть один из них, чтобы не было присвоения скобок с большим количеством пар (см. Примеры). Обратите внимание, что выходная строка всегда должна иметь четную длину.
Примеры:
abcc- cне может быть скобкой, поскольку нет другого символа с двумя вхождениями, но abможет быть парой скобок, так что вы бы точно вывели ab.
fffff - любая строка, содержащая не более одного символа, не может иметь скобок, поэтому вы должны вернуть пустую строку или ничего не выводить.
aedbedebdcecdec - эта строка не может иметь никаких скобок, потому что есть 1 a, 2 bs, 3 cs, 4 ds и 5 es, поэтому два символа не встречаются одинаковое количество раз, что является обязательным условием для использования скобок.
abcd- возможные присвоения ab, cd, abcd, cdab, adbc, bcad, ac, ad, bcи bd, (а также пустые уступки, что все они имеют) , но вы должны вернуть один из самых длинных заданий, так что вы должны вернуться abcd, cdab, adbcили bcad.
aabbcc, abc- они оба имеют ab, acи bcкак действительные пары. Вы должны вернуть одну из этих пар, не важно, какая.
abbac- a и b имеют одинаковое количество символов, но на самом деле они не могут работать, поскольку один из них встречается слева и справа от всех вхождений другого. Ничего не вернуть
aabcdb- cdи abточные две пары кронштейнов, так что выход либо cdabили abcd.
abcdacbd- только одна пара может быть достигнута сразу, но ab, ac, bd, cd, и adвсе из возможных пар вы можете вернуться. Независимо от того , какая пара вы выбираете, он имеет случай , когда один другой персонаж находится в нем, который запрещает любые другие пары, за исключением случая ad, когда другие пары bcи cbне представляется возможным в одиночку либо, и поэтому не может быть возможным с ad.
Это код гольф, поэтому выигрывает самый короткий код в байтах. Ввод из STDIN, если это возможно для вашего языка. Если это невозможно, укажите способ ввода в своем ответе.
abcdвыводadbcтакже будет приемлемым, верно?