Ktoś dał nam ciąg znaków, ale wszystkie znaki podobne do nawiasów zostały zmienione na normalne i nie wiemy, które, a nawet ile ich było. Wiemy tylko, że gdyby L1,L2,L3,...,LNbyły różnego rodzaju lewe nawiasy i R1,R2,R3,...,RNbyły różnymi odpowiednimi rodzajami prawym nawiasami, wszystkie byłyby odrębne (2N znaki odrębnych nawiasów), łańcuch byłby prawidłowy, jeśli jest jednym z (+ jest normalnym połączeniem łańcucha):
L1+X+R1,,L2+X+R2...,LN+X+RNgdzieXjest prawidłowym ciągiem,X+Y, gdzieXiYsą poprawnymi ciągami,Dowolny pojedynczy znak, który nie jest znakiem nawiasu.
Pusty ciąg
Wiemy, że zaczęli od prawidłowego ciągu przed zmianą nawiasów i nie zmienili ich na żadne znaki, które już istniały w ciągu. Dla każdego przedziału istniała również co najmniej jedna para. Czy potrafisz odtworzyć, które postacie były pierwotnie lewą i prawą parą nawiasów (znajdź Lii Riprzestrzegaj podanych warunków)?
Wyprowadza pary znaków, które były nawiasami. Na przykład, jeśli (){}[]faktycznie są znakami nawiasów, możesz wyprowadzać (){}[]lub {}[]()lub [](){}, itd. Może być wiele sposobów, aby to zrobić dla łańcucha, wystarczy zwrócić jeden taki, aby nie było przypisania nawiasów z większą liczbą par (patrz przykłady). Zauważ, że ciąg wyjściowy powinien zawsze mieć parzystą długość.
Przykłady:
abcc- cnie może być nawiasem, ponieważ nie ma innej postaci z dwoma wystąpieniami, ale abmoże być parą nawiasów, więc wynik byłby dokładny ab.
fffff - jakikolwiek ciąg z co najwyżej jednym znakiem nie może zawierać nawiasów, więc zwrócisz pusty ciąg lub nic nie wyświetlisz.
aedbedebdcecdec - ten ciąg nie może zawierać nawiasów, ponieważ jest 1 a, 2 bs, 3 cs, 4 ds i 5 es, więc żadne dwa znaki nie występują tyle samo razy, co jest wymagane, aby mieć nawiasy.
abcd- Możliwe są zadania ab, cd, abcd, cdab, adbc, bcad, ac, ad, bci bd, (jak również pustego przydziału, które z nich), ale należy zwrócić jeden z najdłuższych zadań, więc musisz wrócić abcd, cdab, adbc, lub bcad.
aabbcc, abc- to obie mają ab, aci bcjako ważnych parach. Musisz zwrócić jedną z tych par, nieważne która.
abbac- aib mają taką samą liczbę znaków, ale nie mogą faktycznie działać, ponieważ jeden z nich występuje zarówno po lewej, jak i po prawej stronie wszystkich wystąpień drugiego. Nic nie zwracaj.
aabcdb- cdi absą dokładnie dwiema parami nawiasów, więc wyprowadzaj albo cdabalbo abcd.
abcdacbd- tylko jedna para może zostać osiągnięty na raz, ale ab, ac, bd, cd, i adsą wszystkie możliwe pary można powrócić. Bez względu na to, która para wybrać, ma instancji, gdzie jeden inny znak jest w nim, który zakazuje wszelkich innych par, z wyjątkiem przypadku ad, gdy inne pary bci cbnie są możliwe albo sam, a więc nie może być możliwe z ad.
To jest kod golfowy, więc wygrywa najkrótszy kod w bajtach. Dane wejściowe pochodzą ze STDIN, jeśli to możliwe dla twojego języka. Jeśli nie jest to możliwe, wskaż metodę wprowadzania w swojej odpowiedzi.
abcdwyjścieadbcbyłoby również do przyjęcia, prawda?