Você tem a oportunidade de escrever software para o Bracketeer™, um mainframe antigo, mas poderoso. O software que roda nele é escrito em uma linguagem proprietária. Grande parte da sintaxe é familiar, mas você percebe muitos colchetes, chaves e parênteses. Apesar de o Bracketeer™ ser poderoso, ele não tem flexibilidade. Se o código-fonte tiver qualquer colchete, chave ou parêntese desbalanceado, o Bracketeer™ trava e precisa ser reiniciado. Para evitar esse cenário, você começa a escrever um código capaz de verificar se colchetes, chaves e parênteses estão balanceados antes de tentar rodá-lo no Bracketeer™.
Dada uma string que contém colchetes [], chaves {}, parênteses () ou qualquer combinação deles, verifique se todos os pares estão corretamente pareados e aninhados.
Quaisquer outros caracteres devem ser ignorados.
Por exemplo, "{what is (42)}?" está balanceada e "[text}" não está.
Você pode assumir que a entrada de isBalanced nunca contém mais de 10 níveis de aninhamento.
Fique à vontade para resolver este exercício sem usar o allocator, mas observe que a função isBalanced não pode retornar apenas bool, porque os testes usam try.
Crie sua conta no Exercism para aprender e dominar Zig com 104 exercícios e mentoria humana de verdade, tudo de graça.