Seu trabalho é traduzir sequências de RNA em proteínas.
As fitas de RNA são formadas por sequências de três nucleotídeos chamadas códons. Cada códon é traduzido em um aminoácido. Quando se unem, esses aminoácidos formam uma proteína.
No mundo real, existem 64 códons, que por sua vez correspondem a 20 aminoácidos. No entanto, neste exercício você vai usar apenas alguns dos 64 possíveis. Eles estão listados abaixo:
| Códon | Aminoácido |
|---|---|
| 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 |
Por exemplo, a string de RNA “AUGUUUUCU” tem três códons: “AUG”, “UUU” e “UCU”. Eles correspondem a Methionine, Phenylalanine e Serine.
Você vai notar na tabela acima que existem três códons “STOP”. Se você encontrar algum desses códons, ignore o resto da sequência: a proteína está completa.
Por exemplo, “AUGUUUUCUUAAAUG” contém um códon STOP (“UAA”). Quando chegamos nesse ponto, paramos o processamento. Por isso, consideramos apenas a parte anterior a ele (ou seja, “AUGUUUUCU”), e não os códons que vêm depois (ou seja, “AUG”).
Saiba mais sobre tradução de proteínas na Wikipédia.
Retorne as proteínas como uma lista de símbolos, por exemplo '(methionine phenylalanine serine).
Crie sua conta no Exercism para aprender e dominar Scheme com 53 exercícios e mentoria humana de verdade, tudo de graça.
Explore 11 maneiras diferentes de resolver este exercício, incluindo abordagens imperativas, ideias funcionais como casamento de padrões, recursão e funções de ordem superior, além de um pouco de código de baixo nível em C++ e Assembly.