介绍
RNA是DNA的近亲。其主要目的是通过称为翻译的过程控制细胞中蛋白质的产生。在这一挑战中,您的任务是实施该过程的一部分,其中将RNA分成密码子。
这项挑战与主题相关,但集中在翻译过程的另一部分。
密码子
我们将RNA视为碱基对字母上的长字符串AUCG
。在翻译中,RNA被分为三个碱基对的非重叠片段,称为密码子。该过程开始于一个起始密码子,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