Οδηγός Μελέτης - Εισαγωγή στον Προγραμματισμό

Α14.13 · Ταιριαστές Καρδιές

Online τελική εξέταση Δεκεμβρίου 2023, Εξέταση #0 (Valentine's Themed), Θέμα 2 · Δυσκολία ★★☆ · programming · Κεφάλαια: 14, 12

Πρόγραμμα: hearts.c (25 μονάδες)

Γράψτε ένα πρόγραμμα που για κάθε όρισμα από την γραμμή εντολών ελέγχει αν η συμβολοακολουθία του ορίσματος περιέχει μόνο ταιριαστές καρδιές. Οι ταιριαστές καρδιές ορίζονται ως εξής:

  1. Μπορούν να περιέχουν μόνο χαρακτήρες ‘<’ και ‘3’.
  2. Κάθε καρδιά που κλείνει (‘3’) πρέπει πρώτα να έχει ανοίξει (‘<’).
  3. Όλες οι καρδιές που άνοιξαν κλείνουν.

Παράδειγμα εκτέλεσης:

$ gcc -o hearts hearts.c
$ ./hearts '<3' '<.3>' '<<33' '<<<3' '<333' '<<33<3<<<<3<<33333'
<3: yes
<.3>: no
<<33: yes
<<<3: no
<333: no
<<33<3<<<<3<<33333: yes

Υπόδειξη

Είναι το κλασικό πρόβλημα των ισορροπημένων παρενθέσεων: αρκεί ένας μετρητής «ανοιχτών» καρδιών που ανεβαίνει με '<' και κατεβαίνει με '3'. Ποιες δύο συνθήκες πρέπει να ελέγξετε, μία κατά τη διάρκεια της σάρωσης και μία στο τέλος; Μην ξεχάσετε τους άκυρους χαρακτήρες.

Αριθμός στον οδηγό: Α14.13 (στο κεφάλαιο) · Μόνιμο αναγνωριστικό: exam-2023-fall-ex0-q2 · Σύνδεσμος: https://progintro.github.io/study/questions/exams/exam-2023-fall-ex0-q2.html · Markdown (GitHub)