Introducción
El ARN es el primo menos famoso del ADN. Su objetivo principal es controlar la producción de proteínas en las células a través de un proceso llamado traducción . En este desafío, su tarea es implementar una parte de este proceso donde el ARN se divide en codones .
Este desafío está relacionado temáticamente, pero se concentra en otra parte del proceso de traducción.
Codones
Vamos a pensar en el ARN como una larga cadena sobre el alfabeto de pares de bases, AUCG
. En la traducción, el ARN se divide en trozos no superpuestos de tres pares de bases, llamados codones. El proceso comienza en un codón de inicio , AUG
y termina en un codón de parada , uno de UAA
, UAG
o UGA
. Cada codón (excepto los codones de parada) corresponde a un aminoácido, y la cadena de aminoácidos resultante forma la proteína.
Entrada
Su entrada es una cadena de ARN no vacía.
Salida
Su salida es la lista de codones en los que se divide el ARN, en cualquier formato razonable. En este modelo simplificado, el proceso comienza en el codón de inicio más a la izquierdaAUG
, que se incluye en la salida. Termina cuando se encuentra un codón de parada o cuando se nos acaba el ARN. Si la entrada no contiene codón de inicio, la salida será una lista vacía.
Ejemplos
Considere la secuencia de entrada
ACAUGGAUGGACUGUAACCCCAUGC
El análisis comienza en la aparición más a la izquierda de AUG
, en el índice 2. Continúa de la siguiente manera:
AC AUG GAU GGA CUG UAA CCCCAUGC
* ^ ^ ^ +
El codón marcado con *
es el codón de inicio, y los marcados con ^
también son parte de la salida. El codón de parada está marcado con +
. La salida correcta es
AUG,GAU,GGA,CUG
Para la entrada más corta
ACAUGGAUGGACUGU
el proceso va
AC AUG GAU GGA CUG U
* ^ ^ ^
Esta vez, no se encuentra un codón de parada, por lo que el proceso se detiene cuando nos quedamos sin pares de bases. El resultado es el mismo que el anterior.
Reglas y puntaje
Puede escribir un programa completo de una función. El conteo de bytes más bajo gana, y las lagunas estándar no se permiten.
Casos de prueba
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