Ⅴ. DNA大轉錄


Submit solution

分數: 100 (partial)
時間限制: 1.0s
Python 3 10.0s
記憶體限制: 10M
Python 3 15M

作者:
題目類型
允許的語言
Assembly, Brainfuck, C, C++, Python

電電很討厭生物,因此選擇第二類組.孰料,還是沒能逃過這門邪惡的課程,二上還是有基礎生物.是故,他上課不是睡覺就是在寫程式.
有次,生物老師終於森氣氣惹,因此派給他一項作業:給他一個單股DNA含氮鹼基序列片段字串,要他寫出RNA聚合酶生成的RNA含氮鹼基序列片段字串

背景知識

去氧核糖核酸 (DNA)

核苷酸組成的聚合物.
核苷酸以一個含氮鹼基為核心,加上一個去氧五碳糖和一個或者多個磷酸基團組成。
DNA的含氮鹼基共有腺嘌呤 (Adenine)、胸腺嘧啶 (Thymine)、胞嘧啶 (Cytosine)和鳥嘌呤 (Guanine).

核糖核酸 (RNA) 


也是由核苷酸組成的聚合物.
RNA的含氮鹼基共有尿嘧啶 (Uracil)、腺嘌呤 (Adenine)、鳥嘌呤 (Guanine)和胞嘧啶 (Cytosine).

轉錄 (Transcript)


簡單來說,應該就是將遺傳資訊由DNA複製成RNA的過程.
大略分為幾個階段:

  1. 鬆開兩股DNA以其一為模板
  2. 根據鹼基互補配對原則,產生RNA


來源DNA含氮鹼基種類ATCG
目的RNA含氮鹼基種類UAGC

輸入格式

一個合法的單股DNA含氮鹼基序列片段字串

  1. 對於 40% 測資,長度不超過 1000
  2. 對於 90% 測資,長度不超過 50000
  3. 對於 100% 測資,長度不超過 20000000

 

輸出格式

試輸出經過RNA聚合酶後得到的RNA含氮鹼基序列片段字串</strong>.  

 

範例輸入

ATCG
GCTGAATCGTTGCCACTTCGACGCAGTGAGATAATGGCCACAGTTACTAGTGAGAGGGCGATTCCATCTTCGCGTCGTGCCGTGTAAGAATGGATAAAGCCAGGCTCGATGCAAGCCTGTGATCCGAGAAACATAACCACGACTTAGCTACGAATAACCAAGCATCTTACGGTCCTTGCTTGGATATATGTGAACACATT

範例輸出

UAGC
CGACUUAGCAACGGUGAAGCUGCGUCACUCUAUUACCGGUGUCAAUGAUCACUCUCCCGCUAAGGUAGAAGCGCAGCACGGCACAUUCUUACCUAUUUCGGUCCGAGCUACGUUCGGACACUAGGCUCUUUGUAUUGGUGCUGAAUCGAUGCUUAUUGGUUCGUAGAAUGCCAGGAACGAACCUAUAUACACUUGUGUAA

提示

本題記憶體限制為「10MB」!!

  如果得到的結果如下:

代表發生MLE,記憶體用量超過!!   ⟪想一想,有迷有不必全部存起來的方法??⟫


評論


  • 0
    dc  commented on 十月 20, 2024, 2:32 p.m.

    python 分享:

    這題記憶體限制 15M python 啟動後能使用的就所剩無幾了。 常用的 input() 或 sys.stdin.readline() 都是 line input 如果某 line 測資太大, 就會 MLE.

    可以設一個 k 值 (可以設 1000 或 10000 看記憶體剩多少) 持續用 s = sys.stdin.read(k) 直到讀不到資料。


  • 0
    dc  commented on 十月 16, 2024, 2:16 p.m.

    您把記憶體限制為 10MB , python 無法作答. 跟 ‘⟪想一想,有迷有不必全部存起來的方法??⟫’ 這件事無關。


    • 0
      zero  commented on 十月 19, 2024, 11:16 a.m. 已編輯

      已調整python limit