이것은 Brain-Flak의 생일로 이어지는 일련의 도전 중 하나였습니다. 자세한 내용은 여기 를 참조 하십시오 .
도전
이 과제의 목표는 완전히 일치하는 대괄호 문자열에서 첫 번째 대괄호 쌍을 찾는 것 ()[]{}<>
입니다. 완전히 일치하는 문자열에 대한 DJMcMayhem의 정의 를 빌리려면 :
이 과제의 목적 상 "브래킷"은 다음 문자 중 하나
()[]{}<>
입니다.여는 괄호와 닫는 괄호가 올바른 순서이고 괄호 안에 문자가없는 경우 괄호 쌍은 "일치하는"것으로 간주됩니다.
() []{}
또는 내부의 모든 하위 요소도 일치하는 경우
[()()()()] {<[]>} (()())
하위 요소는 여러 층으로 중첩 될 수도 있습니다.
[(){<><>[()]}<>()] <[{((()))}]>
각 쌍의 브래킷이 올바른 순서로 올바른 개폐 브래킷을 갖는 경우에만 문자열이 "완전히 일치"한 것으로 간주됩니다.
입력
입력은 공백이 아닌 단일 문자열 또는 문자 만 포함하는 문자 배열로 구성되며 ()[]{}<>
완전히 일치합니다. i / o 기본값에 해당하는 합리적인 방식으로 입력 할 수 있습니다 .
산출
프로그램 또는 함수의 출력은 첫 번째를 닫는 대괄호의 색인이됩니다. 출력 합니다 일 수 0
또는 1
인덱스. 다시, 출력은 우리의 i / o 기본값 과 일치하는 합리적인 방식 일 수 있습니다 .
테스트 사례
Input 0-indexed 1-indexed
() 1 2
(<>) 3 4
<[]{<>}> 7 8
{}{}{}{} 1 2
[[]<>[]] 7 8
이것은 code-golf 이며 가장 적은 바이트 수입니다!