Διαδρομές
/
Dart
Dart
/
Ασκήσεις
/
Καταμέτρηση νουκλεοτιδίων
Καταμέτρηση νουκλεοτιδίων

Καταμέτρηση νουκλεοτιδίων

Εύκολο

Οδηγίες

Καθένας από εμάς κληρονομεί από τους βιολογικούς του γονείς ένα σύνολο χημικών οδηγιών, γνωστό ως 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

Υλοποίηση

Υπάρχουν φορές που χρειάζεται να χειριστείς απρόβλεπτα ζητήματα που προκύπτουν κατά την εκτέλεση του κώδικα. Στη Dart, μπορείς να χρησιμοποιήσεις εξαιρέσεις για να χειριστείς αυτές τις καταστάσεις.

Για να πετάξεις μια εξαίρεση στη Dart, χρησιμοποίησε τη λέξη-κλειδί throw ακολουθούμενη από ένα στιγμιότυπο της συγκεκριμένης εξαίρεσης που θέλεις να πετάξεις. Για παράδειγμα, το throw Exception() πετάει ένα στιγμιότυπο του βασικού τύπου Exception.

Σε αυτή την άσκηση, πρέπει να ορίσεις μια προσαρμοσμένη εξαίρεση με το όνομα InvalidNucleotideException. Αυτή η εξαίρεση πρέπει να πετιέται όταν συναντηθεί ένα μη έγκυρο νουκλεοτίδιο. Το test suite ελέγχει μόνο ότι περνιέται ένα στιγμιότυπο του InvalidNucleotideException, οπότε είσαι ελεύθερος να το υλοποιήσεις όπως νομίζεις, αρκεί να πετιέται σωστά.

Για περισσότερες πληροφορίες σχετικά με τις εξαιρέσεις στη Dart, μπορείς να συμβουλευτείς την τεκμηρίωση για τις εξαιρέσεις. Μπορείς να δημιουργήσεις προσαρμοσμένες εξαιρέσεις υλοποιώντας τη διεπαφή Exception.

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

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

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