Хтось подав нам рядок, але всі символи, що нагадують дужки, були змінені на звичайні, і ми не знаємо, яких, а то і скільки їх було. Все, що ми знаємо, це те, що якби 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
також буде прийнятним, правда?