Vous recevrez une chaîne (éventuellement vide) contenant des crochets ( [{()}]) et tout autre caractère ( A- Z, a- z, 0- 9, ponctuation). Vous devez vérifier s'il respecte les règles suivantes:
- Les caractères non crochets sont ignorés.
- Chaque support ouvert
[{(a un support de fermeture)}]. Ce[](n'est donc pas permis. - Les supports sont imbriqués correctement.
[(])n'est pas autorisé. - Les accolades ne peuvent pas contenir de crochets. Les crochets simples ne peuvent contenir ni crochets ni crochets. Donc
[({})],[{[]}]et({})ne sont pas autorisés. Les crochets peuvent être imbriqués avec des crochets similaires, ce qui[[{((()))}{{(())}}]()]{()}est donc autorisé.
La sortie est une seule valeur vérité / falsey selon votre choix.
Le code le plus court gagne.
Cas de test
b[[a{(/)}(())+={{}-}],] -> Valide
([h][e][l][l][o]) -> invalide
[///[{(\/(arg()))}1{{((-)-2)}}]()]{()} -> Valide
hi -> Valide