Tu as l'occasion d'écrire un logiciel pour le Bracketeer™, un mainframe ancien mais puissant. Le logiciel qui tourne dessus est écrit dans un langage propriétaire. Sa syntaxe est en grande partie familière, mais tu remarques beaucoup de crochets, d'accolades et de parenthèses. Bien que le Bracketeer™ soit puissant, il manque de flexibilité. Si le code source contient des crochets, des accolades ou des parenthèses qui ne sont pas équilibrés, le Bracketeer™ plante et doit être redémarré. Pour éviter un tel scénario, tu commences à écrire du code capable de vérifier que les crochets, les accolades et les parenthèses sont équilibrés avant d'essayer de l'exécuter sur le Bracketeer™.
Étant donné une string contenant des crochets ([]), des accolades ({}), des parenthèses (()), ou n'importe quelle combinaison de ceux-ci, vérifie que toutes les paires sont correctement appariées et imbriquées.
Tous les autres caractères doivent être ignorés.
Par exemple, "{what is (42)}?" est équilibré et "[text}" ne l'est pas.
Tu peux considérer que l'entrée de isBalanced ne contient jamais plus de 10 niveaux d'imbrication.
Tu peux tout à fait résoudre cet exercice sans utiliser allocator, mais note que la fonction isBalanced ne peut pas renvoyer seulement bool, car les tests utilisent try.
Inscris-toi sur Exercism pour apprendre et maîtriser Zig avec 104 exercices, et un vrai mentorat humain, le tout gratuitement.