學習軌道
/
WebAssembly
WebAssembly
/
練習
/
蛋白質轉譯
蛋白質轉譯

蛋白質轉譯

中等

說明

你的任務是將 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」密碼子

從上表可以注意到,有三個**「STOP」密碼子**。 如果你遇到其中任何一個密碼子,就忽略序列剩下的部分,因為蛋白質已經完成了。

舉例來說,「AUGUUUUCUUAAAUG」包含一個 STOP 密碼子(「UAA」)。 一旦處理到那個位置,我們就會停下來。 因此我們只考慮它前面的部分(也就是「AUGUUUUCU」),而不理會它之後的任何密碼子(也就是「AUG」)。

想進一步了解,請參閱維基百科上的蛋白質轉譯。

保留記憶體

線性記憶體中的位元組 1024 到 1279 保留給輸入字串使用。

如有需要,可以直接在原處修改輸入字串。

輸入格式

密碼子會串接成一個字串傳入,中間不做任何填充。

輸出格式

將蛋白質序列輸出成以 null 結尾的字串,每個蛋白質後面都有一個換行字元。

輸出的範例會是 "Methionine\nPhenylalanine\nSerine\n"

如果輸入無效,就輸出空字串。


出處

Tyler Long
透過 GitHub 編輯 連結會在新視窗或分頁中開啟
WebAssembly Exercism

準備好開始 蛋白質轉譯 了嗎?

註冊 Exercism,透過 87 個練習 和真人引導來學習並精通 WebAssembly,全部免費。

深入探索 蛋白質轉譯!

探索 11 種不同的解題方式,包括命令式做法,模式比對、遞迴與高階函式等函數式概念,以及一些用 C++ 和 Assembly 撰寫的低階程式碼。