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 è.
Ci sono molti modi per portare a termine questo esercizio, ma abbiamo fornito alcuni stub aggiuntivi per chi vuole esercitarsi a scrivere i propri gestori di ability.
La firma della funzione ausiliaria checkBalance fornita per questo esercizio fa uso di un requisito di ability, {Stack}.
L'ability Stack è definita per te, ma il gestore, Stack.run, no!
Se vuoi, puoi implementare le funzioni Stack.run, checkBalance e isPaired.
I test verranno eseguiti anche se scegli di non implementare questo esercizio con le ability.
Iscriviti a Exercism per imparare e padroneggiare Unison con 53 esercizi e il mentoring di persone reali, tutto gratis.