Ⅴ. DNA大轉錄
電電很討厭生物,因此選擇第二類組.孰料,還是沒能逃過這門邪惡的課程,二上還是有基礎生物.是故,他上課不是睡覺就是在寫程式.
有次,生物老師終於森氣氣惹,因此派給他一項作業:給他一個單股DNA含氮鹼基序列片段字串,要他寫出RNA聚合酶生成的RNA含氮鹼基序列片段字串.
背景知識
去氧核糖核酸 (DNA)
由核苷酸組成的聚合物.核苷酸以一個含氮鹼基為核心,加上一個去氧五碳糖和一個或者多個磷酸基團組成。
DNA的含氮鹼基共有腺嘌呤 (
A
denine)、胸腺嘧啶 (T
hymine)、胞嘧啶 (C
ytosine)和鳥嘌呤 (G
uanine).
核糖核酸 (RNA)
也是由核苷酸組成的聚合物.
RNA的含氮鹼基共有尿嘧啶 (
U
racil)、腺嘌呤 (A
denine)、鳥嘌呤 (G
uanine)和胞嘧啶 (C
ytosine).
轉錄 (Transcript)
簡單來說,應該就是將遺傳資訊由DNA複製成RNA的過程.
大略分為幾個階段:
- 鬆開兩股DNA以其一為模板
- 根據鹼基互補配對原則,產生RNA
來源DNA含氮鹼基種類 | A | T | C | G |
---|---|---|---|---|
目的RNA含氮鹼基種類 | U | A | G | C |
輸入格式
一個合法的單股DNA含氮鹼基序列片段字串:
- 對於 40% 測資,長度不超過 1000
- 對於 90% 測資,長度不超過 50000
- 對於 100% 測資,長度不超過 20000000
輸出格式
試輸出經過RNA聚合酶後得到的RNA含氮鹼基序列片段字串</strong>.
範例輸入
ATCG
GCTGAATCGTTGCCACTTCGACGCAGTGAGATAATGGCCACAGTTACTAGTGAGAGGGCGATTCCATCTTCGCGTCGTGCCGTGTAAGAATGGATAAAGCCAGGCTCGATGCAAGCCTGTGATCCGAGAAACATAACCACGACTTAGCTACGAATAACCAAGCATCTTACGGTCCTTGCTTGGATATATGTGAACACATT
範例輸出
UAGC
CGACUUAGCAACGGUGAAGCUGCGUCACUCUAUUACCGGUGUCAAUGAUCACUCUCCCGCUAAGGUAGAAGCGCAGCACGGCACAUUCUUACCUAUUUCGGUCCGAGCUACGUUCGGACACUAGGCUCUUUGUAUUGGUGCUGAAUCGAUGCUUAUUGGUUCGUAGAAUGCCAGGAACGAACCUAUAUACACUUGUGUAA
提示
本題記憶體限制為「10MB
」!!
如果得到的結果如下:
代表發生MLE
,記憶體用量超過!!
⟪想一想,有迷有不必全部存起來的方法??⟫
- ZeroJudge e934: pD. DNA 轉錄 2014 台大資工二階
留言
python 分享:
這題記憶體限制 15M python 啟動後能使用的就所剩無幾了。 常用的 input() 或 sys.stdin.readline() 都是 line input 如果某 line 測資太大, 就會 MLE.
可以設一個 k 值 (可以設 1000 或 10000 看記憶體剩多少) 持續用 s = sys.stdin.read(k) 直到讀不到資料。
您把記憶體限制為 10MB , python 無法作答. 跟 ‘⟪想一想,有迷有不必全部存起來的方法??⟫’ 這件事無關。
已調整python limit