Καθένας από εμάς κληρονομεί από τους βιολογικούς του γονείς ένα σύνολο χημικών οδηγιών, γνωστό ως 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
Πρέπει να ορίσεις έναν προσαρμοσμένο τύπο 'DNA' με μια συνάρτηση 'Counts' που επιστρέφει δύο τιμές:
Ποιος τύπος είναι κατάλληλος για έναν κλώνο DNA;
Ποιοι είναι οι καλύτεροι τύποι Go για να αναπαραστήσουν τις τιμές εξόδου;
Ρίξε μια ματιά στις περιπτώσεις δοκιμών για να πάρεις μια ιδέα για το ποιες μπορεί να είναι οι πιθανές είσοδοι.
Ίσως αναρωτιέσαι για το αρχείο cases_test.go.
Το εξηγούμε στην άσκηση Άλμα.
Γράψου στο Exercism για να μάθεις και να κατακτήσεις Go με 34 έννοιες165 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.