Rutas
/
Go
Go
/
Ejercicios
/
Recuento de nucleótidos
Recuento de nucleótidos

Recuento de nucleótidos

Fácil

Instrucciones

Todos heredamos de nuestros padres biológicos un conjunto de instrucciones químicas conocido como ADN, que influye en cómo se construyen nuestros cuerpos. ¡Toda la vida conocida depende del ADN!

Nota: No necesitas saber nada sobre nucleótidos ni sobre el ADN para completar este ejercicio.

El ADN es una larga cadena de otras sustancias químicas, y las más importantes son los cuatro nucleótidos: adenina, citosina, guanina y timina. Una sola cadena de ADN puede contener miles de millones de estos cuatro nucleótidos, ¡y el orden en que aparecen es importante! Al orden de estos nucleótidos en un fragmento de ADN lo llamamos «secuencia de ADN».

Representamos una secuencia de ADN como una colección ordenada de estos cuatro nucleótidos, y una forma habitual de hacerlo es con un string de caracteres como «ATTACG» para una secuencia de ADN de 6 nucleótidos. «A» para la adenina, «C» para la citosina, «G» para la guanina y «T» para la timina.

Dado un string que representa una secuencia de ADN, cuenta cuántos hay de cada nucleótido. Si el string contiene caracteres que no son A, C, G o T, entonces no es válido y deberías señalar un error.

Por ejemplo:

"GATTACA" -> 'A': 3, 'C': 1, 'G': 1, 'T': 2
"INVALID" -> error

Implementación

Debes definir un tipo personalizado 'DNA' con una función 'Counts' que devuelva dos valores:

  • un recuento de frecuencias para la cadena de ADN dada
  • un error (si hay nucleótidos no válidos)

¿Qué tipo es apropiado para una cadena de ADN?

¿Cuáles son los mejores tipos de Go para representar los valores de salida?

Echa un vistazo a los casos de prueba para hacerte una idea de cuáles podrían ser las entradas posibles.

Nota sobre las pruebas

Quizá te preguntes por el archivo cases_test.go. Lo explicamos en el ejercicio leap.

Editar en GitHub El enlace se abre en una ventana o pestaña nueva
Go Exercism

¿Listo para empezar Recuento de nucleótidos?

Regístrate en Exercism para aprender y dominar Go con 34 conceptos165 ejercicios y mentoría humana real, todo gratis.