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

Α10.22 · Αναγράμματα

Online τελική εξέταση Δεκεμβρίου 2023, Εξέταση #4 (Rick Astley Themed), Θέμα 1 · Δυσκολία ★★☆ · programming · Κεφάλαια: 10, 14

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

Γράψτε ένα πρόγραμμα που δέχεται δύο ορίσματα και ελέγχει αν το ένα είναι ένα ανάγραμμα του άλλου. Δύο φράσεις λέγονται αναγράμματα όταν περιέχουν τους ίδιους χαρακτήρες αλλά πιθανώς με διαφορετική σειρά π.χ., οι φράσεις “desert you” και “you rested” είναι αναγράμματα η μία της άλλης. Παράδειγμα εκτέλεσης:

$ gcc -o anagram anagram.c
$ ./anagram "desert you!" "you rested!"
"desert you!" is an anagram of "you rested!".
$ ./anagram "never gonna give" "never gonna give"
"never gonna give" is an anagram of "never gonna give".
$ ./anagram "never gonna give" "gonna run around"
"never gonna give" is NOT an anagram of "gonna run around".

Υπόδειξη

Μετρήστε πόσες φορές εμφανίζεται κάθε χαρακτήρας σε κάθε φράση, με έναν πίνακα 256 μετρητών που δεικτοδοτείται από την τιμή του byte (ως unsigned char), και συγκρίνετε τα δύο ιστογράμματα. Αυτό είναι O(n), σε αντίθεση με την ταξινόμηση ή τη σύγκριση όλων με όλους. Ελέγξτε ότι δόθηκαν ακριβώς δύο ορίσματα.

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