Nous héritons tous de nos parents biologiques un ensemble d'instructions chimiques appelé ADN, qui influencent la façon dont notre corps se construit. Toute forme de vie connue dépend de l'ADN !
Remarque : tu n'as pas besoin de comprendre quoi que ce soit aux nucléotides ou à l'ADN pour faire cet exercice.
L'ADN est une longue chaîne d'autres produits chimiques, et les plus importants sont les quatre nucléotides : l'adénine, la cytosine, la guanine et la thymine. Une seule chaîne d'ADN peut contenir des milliards de ces quatre nucléotides, et l'ordre dans lequel ils apparaissent est important ! On appelle l'ordre de ces nucléotides dans un fragment d'ADN une « séquence d'ADN ».
On représente une séquence d'ADN comme une collection ordonnée de ces quatre nucléotides, et une façon courante de le faire est d'utiliser une string de caractères telle que « ATTACG » pour une séquence d'ADN de 6 nucléotides. « A » pour l'adénine, « C » pour la cytosine, « G » pour la guanine et « T » pour la thymine.
À partir d'une string qui représente une séquence d'ADN, compte combien de fois chaque nucléotide apparaît. Si la string contient des caractères autres que A, C, G ou T, elle est invalide et tu dois signaler une erreur.
Par exemple :
"GATTACA" -> 'A': 3, 'C': 1, 'G': 1, 'T': 2
"INVALID" -> error
Tu dois définir un type personnalisé 'DNA' avec une fonction 'Counts' qui renvoie deux valeurs :
Quel type est adapté pour représenter un brin d'ADN ?
Quels sont les meilleurs types en Go pour représenter les valeurs de sortie ?
Jette un œil aux cas de test pour avoir une idée des entrées possibles.
Tu te demandes peut-être à quoi correspond le fichier cases_test.go.
On l'explique dans l'exercice leap.
Inscris-toi sur Exercism pour apprendre et maîtriser Go avec 34 concepts165 exercices, et un vrai mentorat humain, le tout gratuitement.