Η δουλειά σου είναι να μεταφράσεις αλληλουχίες RNA σε πρωτεΐνες.
Τα μόρια RNA αποτελούνται από αλληλουχίες τριών νουκλεοτιδίων που ονομάζονται κωδικόνια. Κάθε κωδικόνιο μεταφράζεται σε ένα αμινοξύ. Όταν ενωθούν μεταξύ τους, αυτά τα αμινοξέα σχηματίζουν μια πρωτεΐνη.
Στον πραγματικό κόσμο υπάρχουν 64 κωδικόνια, τα οποία με τη σειρά τους αντιστοιχούν σε 20 αμινοξέα. Ωστόσο, σε αυτή την άσκηση θα χρησιμοποιήσεις μόνο λίγα από τα 64 πιθανά. Αναφέρονται παρακάτω:
| Κωδικόνιο | Αμινοξύ |
|---|---|
| AUG | Methionine |
| UUU, UUC | Phenylalanine |
| UUA, UUG | Leucine |
| UCU, UCC, UCA, UCG | Serine |
| UAU, UAC | Tyrosine |
| UGU, UGC | Cysteine |
| UGG | Tryptophan |
| UAA, UAG, UGA | STOP |
Για παράδειγμα, η αλληλουχία RNA "AUGUUUUCU" έχει τρία κωδικόνια: "AUG", "UUU" και "UCU". Αυτά αντιστοιχούν σε Methionine, Phenylalanine και Serine.
Θα παρατηρήσεις από τον παραπάνω πίνακα ότι υπάρχουν τρία κωδικόνια "STOP". Αν συναντήσεις κάποιο από αυτά τα κωδικόνια, αγνόησε την υπόλοιπη αλληλουχία: η πρωτεΐνη είναι πλήρης.
Για παράδειγμα, η αλληλουχία "AUGUUUUCUUAAAUG" περιέχει ένα κωδικόνιο STOP ("UAA"). Μόλις φτάσουμε σε εκείνο το σημείο, σταματάμε την επεξεργασία. Επομένως λαμβάνουμε υπόψη μόνο το τμήμα πριν από αυτό (δηλαδή "AUGUUUUCU") και όχι τα επόμενα κωδικόνια μετά από αυτό (δηλαδή "AUG").
Μάθε περισσότερα για τη μετάφραση πρωτεϊνών στη Wikipedia.
Δώσε την αλληλουχία πρωτεϊνών ως συμβολοσειρά τερματισμένη με null, με έναν χαρακτήρα αλλαγής γραμμής μετά από κάθε πρωτεΐνη.
Ένα παράδειγμα εξόδου θα ήταν "Methionine\nPhenylalanine\nSerine\n"
Αν η είσοδος δεν είναι έγκυρη, δώσε μια κενή συμβολοσειρά.
| Καταχωρητής | Χρήση | Τύπος | Περιγραφή |
|---|---|---|---|
$a0 |
είσοδος | διεύθυνση | συμβολοσειρά εισόδου τερματισμένη με null |
$a1 |
είσοδος/έξοδος | διεύθυνση | συμβολοσειρά εξόδου τερματισμένη με null |
$t0-9 |
προσωρινός | οποιοσδήποτε | χρησιμοποιείται για προσωρινή αποθήκευση |
Γράψου στο Exercism για να μάθεις και να κατακτήσεις MIPS Assembly με 70 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.
Εξερεύνησε 11 διαφορετικούς τρόπους να λύσεις αυτή την άσκηση, όπως προστακτικές προσεγγίσεις, συναρτησιακές ιδέες όπως η αντιστοίχιση προτύπων, η αναδρομή και οι συναρτήσεις υψηλότερης τάξης, καθώς και λίγο προγραμματισμό χαμηλού επιπέδου σε C++ και Assembly.