Καθένας από εμάς κληρονομεί από τους βιολογικούς του γονείς ένα σύνολο χημικών οδηγιών, γνωστό ως DNA, που καθορίζουν πώς δομείται το σώμα μας. Κάθε γνωστή μορφή ζωής εξαρτάται από το DNA!
Σημείωση: Δεν χρειάζεται να καταλάβεις τίποτα για τα νουκλεοτίδια ή το DNA για να ολοκληρώσεις αυτή την άσκηση.
Το DNA είναι μια μακριά αλυσίδα από άλλες χημικές ουσίες, και τα πιο σημαντικά από αυτά είναι τα τέσσερα νουκλεοτίδια: η αδενίνη, η κυτοσίνη, η γουανίνη και η θυμίνη. Μια μόνο αλυσίδα DNA μπορεί να περιέχει δισεκατομμύρια από αυτά τα τέσσερα νουκλεοτίδια, και η σειρά με την οποία εμφανίζονται έχει σημασία! Τη σειρά αυτών των νουκλεοτιδίων σε ένα κομμάτι DNA την ονομάζουμε "αλληλουχία DNA".
Αναπαριστούμε μια αλληλουχία DNA ως μια διατεταγμένη συλλογή αυτών των τεσσάρων νουκλεοτιδίων, και ένας συνηθισμένος τρόπος για να το κάνουμε αυτό είναι με μια συμβολοσειρά χαρακτήρων, όπως "ATTACG" για μια αλληλουχία DNA 6 νουκλεοτιδίων. 'Α' για την αδενίνη, 'C' για την κυτοσίνη, 'G' για τη γουανίνη και 'T' για τη θυμίνη.
Δεδομένης μιας συμβολοσειράς που αναπαριστά μια αλληλουχία DNA, μέτρησε πόσα από κάθε νουκλεοτίδιο υπάρχουν. Αν η συμβολοσειρά περιέχει χαρακτήρες που δεν είναι A, C, G ή T, τότε είναι άκυρη και θα πρέπει να σημάνεις ένα σφάλμα.
Για παράδειγμα:
"GATTACA" -> 'A': 3, 'C': 1, 'G': 1, 'T': 2
"INVALID" -> error
Το buffer για τη συμβολοσειρά εισόδου χρησιμοποιεί τα bytes 64-319 της γραμμικής μνήμης.
Πρέπει να επιστρέψεις το αποτέλεσμα ως πλειάδα 4 θέσεων: (i32 i32 i32 i32). Κάθε αριθμός αντιπροσωπεύει το πλήθος για τα γράμματα A, C, G και T, με αυτή τη σειρά.
Γράψου στο Exercism για να μάθεις και να κατακτήσεις WebAssembly με 87 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.