pengantar
RNA adalah sepupu DNA yang kurang terkenal. Tujuan utamanya adalah untuk mengontrol produksi protein dalam sel melalui proses yang disebut translasi . Dalam tantangan ini, tugas Anda adalah mengimplementasikan bagian dari proses ini di mana RNA dipecah menjadi kodon .
Tantangan ini terkait secara tematis, tetapi berkonsentrasi pada bagian lain dari proses penerjemahan.
Kodon
Kita akan menganggap RNA sebagai string panjang di atas alfabet pasangan basa AUCG
,. Dalam terjemahan, RNA dibagi menjadi potongan non-tumpang tindih dari tiga pasangan basa, yang disebut kodon. Proses dimulai pada kodon start , AUG
dan berakhir pada kodon berhenti , salah UAA
, UAG
atau UGA
. Setiap kodon (kecuali kodon stop) berhubungan dengan asam amino, dan string asam amino yang dihasilkan membentuk protein.
Memasukkan
Input Anda adalah string RNA yang tidak kosong.
Keluaran
Output Anda adalah daftar kodon di mana RNA dibagi, dalam format apa pun yang masuk akal. Dalam model yang disederhanakan ini, proses dimulai pada start kodon paling kiriAUG
, yang termasuk dalam output. Itu berakhir ketika kodon stop ditemukan, atau ketika kita kehabisan RNA. Jika input tidak mengandung start kodon, output akan menjadi daftar kosong.
Contohnya
Pertimbangkan urutan input
ACAUGGAUGGACUGUAACCCCAUGC
Parsing dimulai pada kemunculan paling kiri AUG
, pada indeks 2. Ini berlanjut sebagai berikut:
AC AUG GAU GGA CUG UAA CCCCAUGC
* ^ ^ ^ +
Kodon yang ditandai dengan *
adalah kodon awal, dan yang ditandai dengan ^
juga merupakan bagian dari output. Kodon stop ditandai dengan +
. Output yang benar adalah
AUG,GAU,GGA,CUG
Untuk input yang lebih pendek
ACAUGGAUGGACUGU
prosesnya berjalan
AC AUG GAU GGA CUG U
* ^ ^ ^
Kali ini, kodon stop tidak ditemukan, sehingga proses berhenti ketika kami kehabisan pasangan basa. Outputnya sama seperti di atas.
Aturan dan penilaian
Anda dapat menulis program lengkap suatu fungsi. Hitungan byte terendah menang, dan celah standar tidak diizinkan.
Uji kasus
GGUACGGAUU ->
GGCGAAAUCGAUGCC -> AUG
ACAUGGAUGGACUGU -> AUG,GAU,GGA,CUG
AUGACGUGAUGCUUGA -> AUG,ACG
UGGUUAGAAUAAUGAGCUAG -> AUG,AGC
ACAUGGAUGGACUGUAACCCCAUGC -> AUG,GAU,GGA,CUG
CUAAGAUGGCAUGAGUAAUGAAUGGAG -> AUG,GCA
AAUGGUUUAAUAAAUGUGAUAUGAUGAUA -> AUG,GUU
UGUCACCAUGUAAGGCAUGCCCAAAAUCAG -> AUG
UAUAGAUGGUGAUGAUGCCAUGAGAUGCAUGUUAAU -> AUG,GUG,AUG,AUG,CCA
AUGCUUAUGAAUGGCAUGUACUAAUAGACUCACUUAAGCGGUGAUGAA -> AUG,CUU,AUG,AAU,GGC,AUG,UAC
UGAUAGAUGUAUGGAUGGGAUGCUCAUAGCUAUAAAUGUUAAAGUUAGUCUAAUGAUGAGUAGCCGAUGGCCUAUGAUGCUGAC -> AUG,UAU,GGA,UGG,GAU,GCU,CAU,AGC,UAU,AAA,UGU