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