Это была одна из серии задач, которые привели к дню рождения Брейн-Флака. Узнайте больше здесь .
Вызов
Для этой задачи вашей целью будет найти самую первую пару совпадающих скобок в полностью согласованной цепочке ()[]{}<>
скобок. Чтобы позаимствовать определение DJMcMayhem полностью совпадающей строки:
Для этого вызова, «скобка» представляет собой любая из этих символов:
()[]{}<>
.Пара скобок считается "совпавшей", если открывающая и закрывающая скобки расположены в правильном порядке и в них нет символов, например
() []{}
Или если каждый подэлемент внутри него также совпадает.
[()()()()] {<[]>} (()())
Субэлементы также могут быть вложены в несколько слоев.
[(){<><>[()]}<>()] <[{((()))}]>
Строка считается «полностью согласованной» тогда и только тогда, когда каждая пара скобок имеет правильную открывающую и закрывающую скобки в правильном порядке.
вход
Ввод будет состоять из единственной непустой строки или массива char, содержащего только символы ()[]{}<>
, и гарантированно будет полностью согласован. Вы можете принимать входные данные любым разумным способом, который соответствует нашим настройкам ввода-вывода .
Выход
Результатом вашей программы или функции будет индекс скобки, закрывающей первую. Выход должен быть 0
или 1
индексироваться. Опять же, вывод может быть любым разумным способом, который соответствует нашим значениям по умолчанию для ввода / вывода .
Тестовые случаи
Input 0-indexed 1-indexed
() 1 2
(<>) 3 4
<[]{<>}> 7 8
{}{}{}{} 1 2
[[]<>[]] 7 8
Это код-гольф , побеждает меньше байтов!