Вы должны написать программу или функцию, которая берет строку в скобках и выводит, соответствует ли эта строка полностью. Ваша программа должна напечатать истинное или ложное значение, и 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.