Se llaman bases a las letras ’A
’, ’C
’, ’G
’ y ’T
’ que representan los nucleótidos Adenosina, Citosina, Guanina y Timina, con los cuales se ensambla el ADN. Se trata de hacer un programa que busca las repeticiones más largas de bases en un genoma.
El trabaja con secciones de genoma, que son secuencias de los caracteres ’A
’, ’C
’, ’G
’ y ’T
’ acabadas en ’.
’. Todos los cálculos asumen que estamos en una sección concreta. Así pues, para cada base, hay que dar como resultado la longitud del tramo de repeticiones consecutivas más largo encontrado, y en qué posición está. La ocurrencia de una sola base suelta ya se considera una "repetición" de longitud 1. Cuando, para la misma base, hay dos tramos con repeticiones de la misma longitud, hay que reportar siempre el primero.
Por ejemplo, si la sección fuese "AAACCATGGGTTGTT.
", el resultado debería ser el siguiente:
A
’, la repetición más larga es de 3, empezando en la posición 1;
C
’, es de 2, empezando en la posición 4;
G
’, es de 3, empezando en la posición 7; y
T
’, es de 2, empezando en la posición 11 (hay otra de longitud 2 en la posición 14, pero ésta es posterior a la posición 11)
Las posiciones se refieren siempre a una sola sección de genoma, no al genoma entero, y empiezan por 1.
Entrada
La entrada es una secuencia de caracteres donde solo aparecen ’A
’, ’C
’, ’G
’, ’T
’, y ’.
’, descontando saltos de línea. Cada sección de genoma es una secuencia de bases acabada en ’.
’ y la entrada entera es una secuencia de secciones.
Salida
A la salida hay que mostrar los resultados de cada sección, por orden y en una sola línea, y con el siguiente formato:
"A" = 0, "C" = 2(1), "G" = 0, "T" = 4(3)
Para cada base hay que mostrar la base entre comillas, un signo de igual flanqueado por espacios y luego la longitud máxima encontrada. Si ésta es mayor que 0, entonces hay que añadir la posición entre paréntesis. Las bases están ordenadas alfabéticamente y se separan entre ellas con una coma y un espacio.
Input
ACGT.AACCGGTT.AAACCCGGGTTT. AAAACCCCGGGGTTTT.AAAACCCGGT. ACCGGGTTTT.
Output
"A" = 1(1), "C" = 1(2), "G" = 1(3), "T" = 1(4) "A" = 2(1), "C" = 2(3), "G" = 2(5), "T" = 2(7) "A" = 3(1), "C" = 3(4), "G" = 3(7), "T" = 3(10) "A" = 4(1), "C" = 4(5), "G" = 4(9), "T" = 4(13) "A" = 4(1), "C" = 3(5), "G" = 2(8), "T" = 1(10) "A" = 1(1), "C" = 2(2), "G" = 3(4), "T" = 4(7)
Input
.AAA.GGAG.C.CCTTTTCCTTT.
Output
"A" = 0, "C" = 0, "G" = 0, "T" = 0 "A" = 3(1), "C" = 0, "G" = 0, "T" = 0 "A" = 1(3), "C" = 0, "G" = 2(1), "T" = 0 "A" = 0, "C" = 1(1), "G" = 0, "T" = 0 "A" = 0, "C" = 2(1), "G" = 0, "T" = 4(3)