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