Você receberá uma string (possivelmente vazia) contendo colchetes ( [{()}]) e quaisquer outros caracteres ( A- Z, a- z, 0- 9, pontuação). Você precisa verificar se ele cumpre as seguintes regras:
- Caracteres sem colchetes são ignorados.
- Todo suporte aberto
[{(possui um suporte de fechamento)}]. Então[](não é permitido. - Os colchetes estão aninhados corretamente.
[(])não é permitido. - Os colchetes não podem conter colchetes dentro deles. Os colchetes simples não podem conter colchetes encaracolados ou quadrados. Então
[({})],[{[]}]e({})não é permitido. Os colchetes podem ser aninhados com colchetes semelhantes, portanto,[[{((()))}{{(())}}]()]{()}é permitido.
A saída é um valor único de verdade / falsey, conforme sua escolha.
O menor código vence.
Casos de teste
b[[a{(/)}(())+={{}-}],] -> Válido
([h][e][l][l][o]) -> Inválido
[///[{(\/(arg()))}1{{((-)-2)}}]()]{()} -> Válido
hi -> Válido