누군가 우리에게 줄을 주었지만, 모든 괄호와 같은 문자는 일반 문자로 바뀌었고, 우리는 어느 것이 있는지, 심지어 얼마나 많은지 알 수 없습니다. 우리가 아는 것은 L1,L2,L3,...,LN
다른 종류의 왼쪽 대괄호이고 R1,R2,R3,...,RN
다른 대응하는 종류의 오른쪽 대괄호 인 경우 모두 고유하고 (2N 고유 한 대괄호 문자) 문자열 중 하나 인 경우에 유효합니다 (+는 일반 문자열 연결).
L1+X+R1
,L2+X+R2
, ...,LN+X+RN
여기서X
유효한 문자열입니다,X+Y
, whereX
및Y
유효한 문자열,대괄호 문자가 아닌 모든 단일 문자.
빈 문자열
대괄호를 변경하기 전에 유효한 문자열로 시작했으며 문자열에 이미 존재하는 문자로 변경하지 않았습니다. 각 브래킷마다 하나 이상의 쌍이 존재했습니다. 당신은 재구성 할 수있는 문자는 원래 왼쪽과 오른쪽 브래킷 쌍합니다 (찾을 된 Li
과 Ri
주어진 조건 아래)?
대괄호 인 문자 쌍을 출력하십시오. 예를 들어, (){}[]
실제로 문자를 괄호했다, 당신은 출력 수도 (){}[]
또는 {}[]()
또는 [](){}
등 문자열을이 작업을 수행하는 여러 가지 방법이있을 수 있습니다, 당신은 단지 하나는 더 쌍 (예 참조)에는 브래킷 할당이 없음을 반환해야합니다. 출력 문자열의 길이는 항상 짝수 여야합니다.
예 :
abcc
- c
두 개의 어커런스가있는 다른 문자가 없으므로 ab
대괄호가 될 수 없지만 대괄호 쌍이 될 수 있으므로 정확하게 출력합니다 ab
.
fffff
-최대 하나의 문자가있는 문자열은 대괄호를 사용할 수 없으므로 빈 문자열을 반환하거나 아무것도 출력하지 않습니다.
aedbedebdcecdec
-이 문자열에는 1a, 2bs, 3cs, 4ds 및 5es가 있으므로 대괄호를 사용할 수 없으므로 같은 수의 두 문자가 발생하지 않으므로 대괄호를 사용해야합니다.
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
정확한 브래킷 2 쌍은, 출력 중 하나 그래서 cdab
나 abcd
.
abcdacbd
- 하나의 쌍은 한 번에 달성 할 수 있지만 ab
, ac
, bd
, cd
, 그리고 ad
당신은 가능한 한 쌍을 모두 반환 할 수 있습니다. 당신이 선택하는 한 쌍 상관없이, 그것은의 경우를 제외하고, 다른 쌍을 금지 한 다른 캐릭터가 그 안에있는 인스턴스가 ad
다른 쌍, bc
그리고 cb
하나, 그렇게 할 수 없습니다 만 불가능을 로 ad
.
이것은 코드 골프이므로 바이트 단위의 가장 짧은 코드가 이깁니다. 가능하면 STDIN에서 입력하십시오. 가능하지 않은 경우 답변에 입력 방법을 표시하십시오.
abcd
의 경우 출력adbc
도 허용됩니다.