轨道
/
WebAssembly
WebAssembly
/
练习
/
蛋白质翻译
蛋白质翻译

蛋白质翻译

中等

说明

你的任务是把 RNA 序列翻译成蛋白质。

RNA 链由三个核苷酸组成的序列构成,这些序列称为密码子。每个密码子翻译成一种氨基酸。这些氨基酸连接起来,就形成了蛋白质。

在现实世界中,共有 64 个密码子,它们又对应 20 种氨基酸。不过,本练习只用到这 64 个密码子中的少数几个。它们列在下面:

Codon Amino Acid
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”密码子

你会从上面的表格中注意到,有三个**“STOP”密码子**。如果你遇到其中任何一个密码子,就忽略序列的其余部分,因为蛋白质已经完整了。

例如,“AUGUUUUCUUAAAUG”包含一个 STOP 密码子(“UAA”)。一旦到达这个位置,我们就停止处理。因此,我们只考虑它之前的部分(即“AUGUUUUCU”),而不考虑它之后的任何密码子(即“AUG”)。

想了解更多,请看维基百科上的蛋白质翻译。

预留内存

线性内存的第 1024 到 1279 字节保留给输入字符串。

如果需要,可以原地修改输入字符串。

输入格式

密码子会拼接成一个字符串传入,不加任何填充。

输出格式

把蛋白质序列输出为以空字符结尾的字符串,每个蛋白质后面跟一个换行符。

一个输出示例是 "Methionine\nPhenylalanine\nSerine\n"

如果输入无效,输出一个空字符串。


来源

Tyler Long
通过 GitHub 编辑 链接将在新窗口或新标签页中打开
WebAssembly Exercism

准备好开始 蛋白质翻译 了吗?

注册 Exercism,借助 87 个练习 和真人导师指导,学习并掌握 WebAssembly,全部免费。

深入探索 蛋白质翻译!

探索 11 种不同的解法,包括命令式方法,模式匹配、递归和高阶函数等函数式思路,以及用 C++ 和汇编编写的一些底层代码。