Hai l'opportunità di scrivere software per il Bracketeer™, un mainframe antico ma potente. Il software che ci gira sopra è scritto in un linguaggio proprietario. Gran parte della sua sintassi ti è familiare, ma noti moltissime parentesi quadre, graffe e tonde. Nonostante il Bracketeer™ sia potente, manca di flessibilità. Se il codice sorgente contiene parentesi quadre, graffe o tonde non bilanciate, il Bracketeer™ va in crash e deve essere riavviato. Per evitare questo scenario, inizi a scrivere codice in grado di verificare che parentesi quadre, graffe e tonde siano bilanciate prima di provare a eseguirlo sul Bracketeer™.
Data una stringa che contiene parentesi quadre ([]), parentesi graffe ({}), parentesi tonde (()) o qualsiasi loro combinazione, verifica che tutte le coppie siano abbinate e annidate correttamente.
Ogni altro carattere va ignorato.
Ad esempio, "{what is (42)}?" è bilanciata e "[text}" non lo è.
Puoi presumere che l'input di isBalanced non contenga mai più di 10 livelli di annidamento.
Sentiti libero di risolvere questo esercizio senza usare l'allocator, ma tieni presente che la funzione isBalanced non può restituire semplicemente bool, perché i test usano try.
Iscriviti a Exercism per imparare e padroneggiare Zig con 104 esercizi e il mentoring di persone reali, tutto gratis.