Jeder von uns erbt von seinen biologischen Eltern eine Reihe chemischer Anweisungen, die als DNA bekannt sind. Sie beeinflussen, wie unser Körper aufgebaut ist. Alles bekannte Leben hängt von der DNA ab!
Hinweis: Du musst nichts über Nukleotide oder DNA verstehen, um diese Übung zu lösen.
Die DNA ist eine lange Kette anderer Chemikalien, und die wichtigsten sind die vier Nukleotide Adenin, Cytosin, Guanin und Thymin. Eine einzelne DNA-Kette kann Milliarden dieser vier Nukleotide enthalten, und die Reihenfolge, in der sie vorkommen, ist wichtig! Die Reihenfolge dieser Nukleotide in einem Stück DNA nennen wir eine „DNA-Sequenz“.
Wir stellen eine DNA-Sequenz als geordnete Sammlung dieser vier Nukleotide dar. Eine übliche Methode dafür ist ein String aus Zeichen wie „ATTACG“ für eine DNA-Sequenz aus 6 Nukleotiden. „A“ für Adenin, „C“ für Cytosin, „G“ für Guanin und „T“ für Thymin.
Gegeben ist ein String, der eine DNA-Sequenz darstellt. Zähle, wie oft jedes der Nukleotide darin vorkommt. Enthält der String Zeichen, die nicht A, C, G oder T sind, ist er ungültig, und du solltest einen Fehler melden.
Zum Beispiel:
"GATTACA" -> 'A': 3, 'C': 1, 'G': 1, 'T': 2
"INVALID" -> error
Manchmal musst du auf unerwartete Probleme reagieren, die auftreten, während dein Code läuft. In Dart kannst du dafür Exceptions verwenden.
Um in Dart eine Exception zu werfen, benutzt du das Schlüsselwort throw, gefolgt von einer Instanz der Exception, die du auslösen möchtest.
Zum Beispiel wirft throw Exception() eine Instanz des Basistyps Exception.
In dieser Übung musst du eine eigene Exception namens InvalidNucleotideException definieren.
Diese Exception soll geworfen werden, wenn ein ungültiges Nukleotid auftritt.
Die Testsuite prüft nur, dass eine Instanz von InvalidNucleotideException übergeben wird. Du kannst sie also so umsetzen, wie du möchtest, solange sie korrekt geworfen wird.
Mehr über Exceptions in Dart findest du in der Dokumentation zu Exceptions. Eigene Exceptions kannst du erstellen, indem du das Exception-Interface implementierst.
Melde dich bei Exercism an, um Dart mit 78 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.