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

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

Δύσκολο

Εισαγωγή

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

Οδηγίες

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

Υλοποίηση

Υπάρχουν πολλοί τρόποι για να ολοκληρώσεις αυτή την άσκηση, αλλά έχουμε δώσει κάποια επιπλέον stubs για όσους θα ήθελαν να εξασκηθούν γράφοντας τους δικούς τους χειριστές ικανοτήτων.

Η υπογραφή της βοηθητικής συνάρτησης checkBalance που δίνεται για αυτή την άσκηση κάνει χρήση μιας απαίτησης ικανότητας, {Stack}. Η ικανότητα Stack είναι ορισμένη για σένα, αλλά ο χειριστής, Stack.run, δεν είναι! Αν θέλεις, μπορείς να υλοποιήσεις τις Stack.run, checkBalance και isPaired. Τα tests θα τρέξουν ακόμα κι αν επιλέξεις να μην υλοποιήσεις αυτή την άσκηση με ικανότητες.


Πηγή

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

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

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