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