RNA 轉錄

RNA 轉錄

中等

簡介

你在一間生技工程公司工作,專門開發治療方案。

你的團隊剛接到一個新專案,要為一種罕見的癌症開發標靶治療。

Note

這整件事非常複雜,但基本概念是,有時人體會產生過多的某種蛋白質。那會造成各種混亂。

但如果你能造出一種非常特定的分子(稱為 micro-RNA),它就能阻止這種蛋白質生成。

這種技術稱為 RNA 干擾。

說明

你的任務是判斷給定 DNA 序列的 RNA 互補序列。

DNA 和 RNA 股都是一連串的核苷酸。

DNA 中的四種核苷酸是腺嘌呤(A)、胞嘧啶(C)、鳥嘌呤(G)和胸腺嘧啶(T)。

RNA 中的四種核苷酸是腺嘌呤(A)、胞嘧啶(C)、鳥嘌呤(G)和尿嘧啶(U)。

給定一股 DNA,它轉錄出的 RNA 股就是把每個核苷酸替換成它的互補核苷酸:

  • G -> C
  • C -> G
  • T -> A
  • A -> U
Note

如果你想看看輸入和輸出的結構,可以參考測試套件中的範例。

Rust 實作注意事項

只要在結構體裡使用私有欄位,並提供回傳 Option 或 Result 的公開 new 函式(這裡的 DNA::new 和 RNA::new 就是這樣),就能確保 DNA 的內部表示是正確的。因為每個有效的 DNA 字串都有對應的合法 RNA 字串,所以 into_rna 不需要回傳 Result/Option。

這也說明了你在測試中會看到的型別簽章。

DNA::new() 和 RNA::new() 的回傳型別都是 Result<Self, usize>,其中錯誤型別 usize 代表第一個無效字元的索引(字元索引,不是 utf8)。


出處

Hyperphysics連結會在新視窗或分頁中開啟
透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Rust Exercism

準備好開始 RNA 轉錄 了嗎?

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