Vous devez écrire un programme ou une fonction qui prend une chaîne de crochets et indique si cette chaîne correspond ou non. Votre programme doit imprimer une valeur de vérité ou de fausseté et IO peut être dans n'importe quel format raisonnable .
Règles et définitions:
Pour les besoins de ce défi, un "crochet" est l’un des caractères suivants
()[]{}<>
:.Une paire de crochets est considérée comme "appariée" si les crochets d’ouverture et de fermeture sont dans le bon ordre et qu’ils ne contiennent aucun caractère, tel que
() []{}
Ou si chaque sous-élément à l'intérieur de celui-ci est également assorti.
[()()()()] {<[]>} (()())
Les sous-éléments peuvent également être imbriqués sur plusieurs couches.
[(){<><>[()]}<>()] <[{((()))}]>
Une chaîne est considérée comme "Complètement compatible" si et seulement si:
Chaque personnage est une parenthèse,
Chaque paire de supports a les supports d’ouverture et de fermeture corrects et dans le bon ordre, et
Chaque support est assorti.
Vous pouvez supposer que l'entrée ne contiendra que de l' ASCII imprimable .
Test IO
Voici quelques entrées qui devraient renvoyer une valeur de vérité:
()
[](){}<>
(((())))
({[<>]})
[{()<>()}[]]
[([]{})<{[()<()>]}()>{}]
Et voici quelques sorties qui devraient renvoyer une valeur de fausseté:
( Has no closing ')'
}{ Wrong order
(<)> Each pair contains only half of a matched element
(()()foobar) Contains invalid characters
[({}<>)> The last bracket should be ']' instead of '>'
(((())) Has 4 opening brackets, but only 3 closing brackets.
Comme d'habitude, c'est du code-golf, donc les échappatoires standard s'appliquent, et la réponse la plus courte en octets l'emporte.
[}
un match? Et si non, où est-il exclu par ces règles?
Each pair of brackets has the correct opening and closing bracket and in the right order.