Διαδρομές
/
Zig
Zig
/
Ασκήσεις
/
Αντιστοίχιση αγκυλών
Αντιστοίχιση αγκυλών

Αντιστοίχιση αγκυλών

Μέτριο

Εισαγωγή

Σου δίνεται η ευκαιρία να γράψεις λογισμικό για το Bracketeer™, ένα αρχαίο αλλά ισχυρό mainframe. Το λογισμικό που τρέχει πάνω του είναι γραμμένο σε μια ιδιόκτητη γλώσσα. Μεγάλο μέρος της σύνταξής του είναι οικείο, αλλά παρατηρείς πάρα πολλές αγκύλες, άγκιστρα και παρενθέσεις. Παρά το ότι το Bracketeer™ είναι ισχυρό, δεν έχει ευελιξία. Αν ο πηγαίος κώδικας έχει μη ισορροπημένες αγκύλες, άγκιστρα ή παρενθέσεις, το Bracketeer™ καταρρέει και πρέπει να το επανεκκινήσεις. Για να αποφύγεις ένα τέτοιο σενάριο, αρχίζεις να γράφεις κώδικα που μπορεί να επαληθεύσει ότι οι αγκύλες, τα άγκιστρα και οι παρενθέσεις είναι ισορροπημένες πριν προσπαθήσεις να τον τρέξεις στο Bracketeer™.

Οδηγίες

Δεδομένης μιας συμβολοσειράς που περιέχει αγκύλες [], άγκιστρα {}, παρενθέσεις (), ή οποιονδήποτε συνδυασμό αυτών, επαλήθευσε ότι όλα ανεξαιρέτως τα ζεύγη ταιριάζουν και είναι σωστά εμφωλευμένα. Οποιοιδήποτε άλλοι χαρακτήρες πρέπει να αγνοούνται. Για παράδειγμα, το "{what is (42)}?" είναι ισορροπημένο και το "[text}" δεν είναι.

Περιορισμοί

Μπορείς να υποθέσεις ότι η είσοδος της isBalanced δεν περιέχει ποτέ περισσότερα από 10 επίπεδα εμφώλευσης.

Μη διστάσεις να λύσεις αυτή την άσκηση χωρίς να χρησιμοποιήσεις τον allocator, αλλά πρόσεξε ότι η συνάρτηση isBalanced δεν μπορεί να επιστρέψει μόνο bool, γιατί τα τεστ χρησιμοποιούν το try.


Πηγή

Ginna Baker
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Zig Exercism

Έτοιμος να ξεκινήσεις την άσκηση Αντιστοίχιση αγκυλών;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις Zig με 104 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.