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
Il arrive que l'on doive gérer des problèmes inattendus qui surviennent pendant l'exécution du code. En Dart, on peut utiliser des exceptions pour gérer ce genre de situation.
Pour lever une exception en Dart, utilise le mot-clé throw suivi d'une instance de l'exception précise que tu veux lever.
Par exemple, throw Exception() lève une instance du type Exception de base.
Dans cet exercice, tu dois définir une exception personnalisée appelée InvalidNucleotideException.
Cette exception doit être levée lorsqu'on rencontre un nucléotide invalide.
La suite de tests vérifie seulement qu'une instance de InvalidNucleotideException est levée, tu es donc libre de l'implémenter comme tu le souhaites, tant qu'elle est levée correctement.
Pour plus d'informations sur les exceptions en Dart, tu peux consulter la documentation sur les exceptions. On peut créer des exceptions personnalisées en implémentant l'interface Exception.
Inscris-toi sur Exercism pour apprendre et maîtriser Dart avec 78 exercices, et un vrai mentorat humain, le tout gratuitement.