前書き
RNAはDNAのあまり知られていないいとこです。その主な目的は、翻訳と呼ばれるプロセスを通じて細胞内のタンパク質の生産を制御することです。この課題では、あなたの仕事は、RNAがコドンに分割されるこのプロセスの一部を実装することです。
この課題はテーマ的に関連していますが、翻訳プロセスの別の部分に集中しています。
コドン
RNAは、塩基対のアルファベット上の長い文字列であると考えますAUCG
。翻訳では、RNAはコドンと呼ばれる3つの塩基対の重複しないチャンクに分割されます。プロセスはから始まり開始コドン、AUG
およびで終わる終止コドンの一つUAA
、UAG
又はUGA
。各コドン(停止コドンを除く)はアミノ酸に対応し、結果として生じるアミノ酸のストリングがタンパク質を形成します。
入力
入力は空でないRNAの文字列です。
出力
出力は、RNAが分割されたコドンのリストであり、適切な形式です。この単純化されたモデルでは、プロセスは出力に含まれる左端の開始コドンから始まりAUG
ます。終止コドンが検出されるか、RNAがなくなると終了します。入力に開始コドンが含まれていない場合、出力は空のリストになります。
例
入力シーケンスを検討する
ACAUGGAUGGACUGUAACCCCAUGC
解析は、AUG
インデックス2の左端のから始まります。次のように続きます。
AC AUG GAU GGA CUG UAA CCCCAUGC
* ^ ^ ^ +
マークされたコドン*
は開始コドンであり、マークされたコドン^
も出力の一部です。停止コドンにはが付いてい+
ます。正しい出力は
AUG,GAU,GGA,CUG
短い入力の場合
ACAUGGAUGGACUGU
プロセスが行く
AC AUG GAU GGA CUG U
* ^ ^ ^
今回は停止コドンに遭遇しないため、塩基対がなくなるとプロセスが停止します。出力は上記と同じです。
ルールとスコアリング
関数の完全なプログラムを書くことができます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。
テストケース
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