Διαδρομές
/
WebAssembly
WebAssembly
/
Ασκήσεις
/
Κωδικοποίηση μήκους σειράς
Κωδικοποίηση μήκους σειράς

Κωδικοποίηση μήκους σειράς

Δύσκολο

Οδηγίες

Υλοποίησε την κωδικοποίηση και την αποκωδικοποίηση μήκους σειράς.

Η κωδικοποίηση μήκους σειράς (RLE) είναι μια απλή μορφή συμπίεσης δεδομένων, όπου οι σειρές (διαδοχικά στοιχεία δεδομένων) αντικαθίστανται από μία μόνο τιμή δεδομένων και το πλήθος της.

Για παράδειγμα, μπορούμε να αναπαραστήσουμε τους αρχικούς 53 χαρακτήρες με μόλις 13.

"WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB"  ->  "12WB12W3B24WB"

Η RLE επιτρέπει την τέλεια ανακατασκευή των αρχικών δεδομένων από τα συμπιεσμένα δεδομένα, κάτι που την καθιστά συμπίεση δεδομένων χωρίς απώλειες.

"AABCCCDEEEE"  ->  "2AB3CD4E"  ->  "AABCCCDEEEE"

Για λόγους απλότητας, μπορείς να υποθέσεις ότι η μη κωδικοποιημένη συμβολοσειρά θα περιέχει μόνο τα γράμματα A έως Z (είτε πεζά είτε κεφαλαία) και κενά διαστήματα. Έτσι, τα δεδομένα προς κωδικοποίηση δεν θα περιέχουν ποτέ αριθμούς, και οι αριθμοί μέσα στα δεδομένα προς αποκωδικοποίηση αντιπροσωπεύουν πάντα το πλήθος του επόμενου χαρακτήρα.

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

Ο buffer για τη συμβολοσειρά εισόδου χρησιμοποιεί τα byte 64-319 της γραμμικής μνήμης.

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


Πηγή

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

Έτοιμος να ξεκινήσεις την άσκηση Κωδικοποίηση μήκους σειράς;

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