Вам будет предоставлена (возможно, пустая) строка, содержащая скобки ( [{()}]
) и любые другие символы ( A
- Z
, a
- z
, 0
- 9
, знаки пунктуации). Вам необходимо проверить, соответствует ли он следующим правилам:
- Не заключенные в скобки символы игнорируются.
- Каждая открытая скобка
[{(
имеет закрывающую скобку)}]
. Так[](
что не допускается. - Скобки правильно вложены.
[(])
не разрешено. - Вьющиеся скобки не могут содержать квадратные скобки внутри них. Простые скобки не могут содержать ни фигурных, ни квадратных скобок внутри них. Так
[({})]
,[{[]}]
и({})
не допускаются. Скобки могут быть вложены в одинаковые скобки, поэтому[[{((()))}{{(())}}]()]{()}
это разрешено.
Выход - единственное значение true / falsey согласно вашему выбору.
Самый короткий код выигрывает.
Контрольные примеры
b[[a{(/)}(())+={{}-}],]
-> Действительный
([h][e][l][l][o])
-> Неверный
[///[{(\/(arg()))}1{{((-)-2)}}]()]{()}
-> Действительный
hi
-> Действительный