Αριθμοί OCR

Αριθμοί OCR

Δύσκολο

Εισαγωγή

Η καλύτερή σου φίλη, η Marta, πρόσφατα έπιασε τη δουλειά των ονείρων της, δουλεύοντας με τις συλλογές ενός τοπικού μουσείου ιστορίας. Γνωρίζοντας το ενδιαφέρον σου για τον προγραμματισμό, σου εκμυστηρεύεται ένα ζήτημα στη δουλειά για μια επερχόμενη έκθεση πάνω στην ιστορία των υπολογιστών. Το τμήμα μαθηματικών ενός τοπικού πανεπιστημίου είχε δωρίσει αρκετά κουτιά με ιστορικές εκτυπώσεις, αλλά δεδομένης της κακής κατάστασης των εγγράφων, πάρθηκε η απόφαση να ψηφιοποιηθεί το κείμενο. Ωστόσο, ο παλιός εκτυπωτής του πανεπιστημίου είχε κάποιες ιδιαιτερότητες στον τρόπο που αναπαριστούσε το κείμενο, και η φίλη σου θα χρειαζόταν τη βοήθειά σου για να εξαγάγει με επιτυχία τα δεδομένα.

Οδηγίες

Η Οπτική Αναγνώριση Χαρακτήρων, ή OCR, είναι λογισμικό που μετατρέπει εικόνες κειμένου σε κείμενο αναγνώσιμο από μηχανή. Δεδομένου ενός πλέγματος χαρακτήρων που αναπαριστά κάποια ψηφία, μετέτρεψε το πλέγμα σε μια συμβολοσειρά ψηφίων. Αν το πλέγμα έχει πολλές σειρές κελιών, οι σειρές θα πρέπει να χωρίζονται στην έξοδο με ένα ",".

  • Το πλέγμα αποτελείται από μία ή περισσότερες γραμμές κελιών.
  • Κάθε γραμμή του πλέγματος αποτελείται από ένα ή περισσότερα κελιά.
  • Κάθε κελί έχει πλάτος τρεις στήλες και ύψος τέσσερις σειρές (3x4) και αναπαριστά ένα ψηφίο.
  • Τα ψηφία σχεδιάζονται με κάθετες γραμμές ("|"), κάτω παύλες ("_") και κενά (" ").

Οριακές περιπτώσεις

  • Αν η είσοδος δεν έχει έγκυρο μέγεθος, το πρόγραμμά σου θα πρέπει να δηλώνει ότι υπάρχει σφάλμα.
  • Αν η είσοδος έχει το σωστό μέγεθος, αλλά ένα κελί δεν είναι αναγνωρίσιμο, το πρόγραμμά σου θα πρέπει να βγάζει ένα "?" για αυτόν τον χαρακτήρα.

Παραδείγματα

Η παρακάτω είσοδος (χωρίς τα σχόλια) μετατρέπεται σε "1234567890".

      _  _     _  _  _  _  _  _  #
    | _| _||_||_ |_   ||_||_|| | # Decimal numbers.
    ||_  _|  | _||_|  ||_| _||_| #
                                 # The fourth line is always blank,

Η παρακάτω είσοδος μετατρέπεται σε "123,456,789".

    _  _ 
  | _| _|
  ||_  _|
         
    _  _ 
|_||_ |_ 
  | _||_|
         
 _  _  _ 
  ||_||_|
  ||_| _|
         

Ειδικές οδηγίες για τη διαδρομή

Τα byte 64-191 της γραμμικής μνήμης είναι δεσμευμένα για τη συμβολοσειρά εισόδου.

Η συμβολοσειρά εισόδου μπορεί να τροποποιηθεί επί τόπου, αν θέλεις.

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

Έτοιμος να ξεκινήσεις την άσκηση Αριθμοί OCR;

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