轨道
/
Dart
Dart
/
练习
/
核苷酸计数
核苷酸计数

核苷酸计数

简单

说明

我们每个人都从亲生父母那里继承了一套被称为 DNA 的化学指令,它们影响着我们身体是如何构成的。 所有已知的生命都依赖 DNA!

注意:完成这道练习并不需要了解任何关于核苷酸或 DNA 的知识。

DNA 是一条由其他化学物质组成的长链,其中最重要的是四种核苷酸:腺嘌呤、胞嘧啶、鸟嘌呤和胸腺嘧啶。 一条 DNA 链可以包含数十亿个这四种核苷酸,而它们出现的顺序非常重要! 我们把一小段 DNA 中这些核苷酸的顺序称为“DNA 序列”。

我们用这些核苷酸的有序集合来表示 DNA 序列,常见的做法是用一串字符,比如用 "ATTACG" 表示一段包含 6 个核苷酸的 DNA 序列。 'A' 代表腺嘌呤,'C' 代表胞嘧啶,'G' 代表鸟嘌呤,'T' 代表胸腺嘧啶。

给定一个表示 DNA 序列的字符串,统计其中每种核苷酸各有多少个。 如果字符串中包含不是 A、C、G 或 T 的字符,那么它就是无效的,你应该报错。

例如:

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

实现

有时,你需要处理代码运行过程中出现的意外问题。在 Dart 中,你可以用异常来处理这些情况。

要在 Dart 中抛出异常,请使用 throw 关键字,后面跟上你想抛出的那个特定异常的实例。例如,throw Exception() 会抛出一个基类 Exception 类型的实例。

在本练习中,你需要定义一个名为 InvalidNucleotideException 的自定义异常。当遇到无效的核苷酸时,就应该抛出这个异常。测试套件只检查传入的是否是 InvalidNucleotideException 的实例,所以只要抛出正确,你可以按自己的想法自由实现它。

关于 Dart 中异常的更多信息,可以参阅异常文档。自定义异常可以通过实现 Exception 接口来创建。

通过 GitHub 编辑 链接将在新窗口或新标签页中打开
Dart Exercism

准备好开始 核苷酸计数 了吗?

注册 Exercism,借助 78 个练习 和真人导师指导,学习并掌握 Dart,全部免费。