대괄호 문자열을 사용하고 해당 문자열이 완전히 일치하는지 여부를 출력하는 프로그램 또는 함수를 작성해야합니다. 당신의 프로그램은 진실 또는 허위 가치를 인쇄해야 하며 IO는 어떤 합리적인 형식 일 수 있습니다 .
규칙 및 정의 :
이 과제의 목적 상 "브래킷"은 다음 문자 중 하나
()[]{}<>
입니다.여는 괄호와 닫는 괄호가 올바른 순서이고 괄호 안에 문자가없는 경우 괄호 쌍은 "일치하는"것으로 간주됩니다.
() []{}
또는 내부의 모든 하위 요소도 일치하는 경우
[()()()()] {<[]>} (()())
하위 요소는 여러 층으로 중첩 될 수도 있습니다.
[(){<><>[()]}<>()] <[{((()))}]>
다음과 같은 경우에만 문자열이 "완전 일치"로 간주됩니다.
모든 단일 문자는 대괄호입니다.
각 브래킷 쌍에는 올바른 개폐 브래킷이 올바른 순서로 있으며
각 브래킷이 일치합니다.
입력에 인쇄 가능한 ASCII 만 포함되어 있다고 가정 할 수 있습니다 .
IO 테스트
다음은 정확한 값을 반환해야하는 입력 내용입니다.
()
[](){}<>
(((())))
({[<>]})
[{()<>()}[]]
[([]{})<{[()<()>]}()>{}]
그리고 다음은 잘못된 값을 반환해야하는 출력입니다.
( Has no closing ')'
}{ Wrong order
(<)> Each pair contains only half of a matched element
(()()foobar) Contains invalid characters
[({}<>)> The last bracket should be ']' instead of '>'
(((())) Has 4 opening brackets, but only 3 closing brackets.
평소와 같이 이것은 코드 골프이므로 표준 허점이 적용되어 바이트 단위의 최단 답변이 이깁니다.
[}
일치은? 그렇지 않은 경우 이러한 규칙에 의해 제외되는 곳은 어디입니까?
Each pair of brackets has the correct opening and closing bracket and in the right order.