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