Trilhas
/
Dart
Dart
/
Exercícios
/
Contagem de Nucleotídeos
Contagem de Nucleotídeos

Contagem de Nucleotídeos

Fácil

Instruções

Cada um de nós herda dos nossos pais biológicos um conjunto de instruções químicas conhecidas como DNA, que influenciam a forma como o nosso corpo é construído. Toda a vida conhecida depende do DNA!

Observação: você não precisa entender nada sobre nucleotídeos ou DNA para completar este exercício.

O DNA é uma longa cadeia de outras substâncias químicas, e as mais importantes são os quatro nucleotídeos: adenina, citosina, guanina e timina. Uma única cadeia de DNA pode conter bilhões desses quatro nucleotídeos, e a ordem em que eles aparecem é importante! Chamamos a ordem desses nucleotídeos em um trecho de DNA de "sequência de DNA".

Representamos uma sequência de DNA como uma coleção ordenada desses quatro nucleotídeos, e uma forma comum de fazer isso é com uma string de caracteres como "ATTACG" para uma sequência de DNA de 6 nucleotídeos. 'A' para adenina, 'C' para citosina, 'G' para guanina e 'T' para timina.

Dada uma string que representa uma sequência de DNA, conte quantos de cada nucleotídeo estão presentes. Se a string contiver caracteres que não sejam A, C, G ou T, ela é inválida e você deve sinalizar um erro.

Por exemplo:

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

Implementação

Às vezes você precisa lidar com problemas inesperados que surgem durante a execução do código. No Dart, você pode usar exceções para lidar com essas situações.

Para lançar uma exceção no Dart, use a palavra-chave throw seguida de uma instância da exceção específica que você quer lançar. Por exemplo, throw Exception() lança uma instância do tipo base Exception.

Neste exercício, você precisa definir uma exceção personalizada chamada InvalidNucleotideException. Essa exceção deve ser lançada quando um nucleotídeo inválido for encontrado. A suíte de testes verifica apenas que uma instância de InvalidNucleotideException é lançada, então você tem liberdade para implementá-la como quiser, desde que ela seja lançada corretamente.

Para mais informações sobre exceções no Dart, consulte a documentação de exceções. Exceções personalizadas podem ser criadas implementando a interface Exception.

Editar via GitHub O link abre em uma nova janela ou aba
Dart Exercism

Tudo pronto para começar Contagem de Nucleotídeos?

Crie sua conta no Exercism para aprender e dominar Dart com 78 exercícios e mentoria humana de verdade, tudo de graça.