Tens a oportunidade de escrever software para o Bracketeer™, um mainframe antigo mas poderoso. O software que nele corre está escrito numa linguagem proprietária. Grande parte da sua sintaxe é familiar, mas reparas que há imensos parênteses retos, chavetas e parênteses. Apesar de o Bracketeer™ ser poderoso, falta-lhe flexibilidade. Se o código-fonte tiver parênteses retos, chavetas ou parênteses desequilibrados, o Bracketeer™ avaria e tem de ser reiniciado. Para evitar esse cenário, começas a escrever código capaz de verificar se os parênteses retos, as chavetas e os parênteses estão equilibrados antes de tentares executá-lo no Bracketeer™.
Dada uma string que contém parênteses retos [], chavetas {}, parênteses (), ou qualquer combinação destes, verifica se todos os pares estão corretamente emparelhados e aninhados.
Quaisquer outros carateres devem ser ignorados.
Por exemplo, "{what is (42)}?" está equilibrado e "[text}" não está.
| Registo | Utilização | Tipo | Descrição |
|---|---|---|---|
$a0 |
entrada | endereço | string de entrada terminada em nulo |
$v0 |
saída | Boolean | a entrada tem parênteses correspondentes (0 = false, 1 = true) |
$t0-9 |
temporário | qualquer | usado para armazenamento temporário |
Inscreve-te no Exercism para aprenderes e dominares MIPS Assembly com 70 exercícios, e mentoria humana real, tudo grátis.