Mindannyian örököljük a biológiai szüleinktől azokat a kémiai utasításokat, amelyeket DNS-nek nevezünk, és amelyek meghatározzák, hogyan épül fel a testünk. Minden ismert élet a DNS-től függ!
Megjegyzés: Nem kell semmit tudnod a nukleotidokról vagy a DNS-ről ahhoz, hogy megoldd ezt a feladatot.
A DNS más vegyületek hosszú lánca, amelyben a négy nukleotid a legfontosabb: az adenin, a citozin, a guanin és a timin. Egyetlen DNS-lánc több milliárd ilyen nukleotidot is tartalmazhat, és nagyon számít, milyen sorrendben követik egymást! A DNS egy szakaszán a nukleotidok sorrendjét „DNS-szekvenciának” nevezzük.
A DNS-szekvenciát úgy ábrázoljuk, hogy ezt a négy nukleotidot rendezett gyűjteményként kezeljük, amit általában karakterek egy string-jével adunk meg; egy 6 nukleotidból álló DNS-szekvenciát például az „ATTACG” ír le. Az 'A' az adenint, a 'C' a citozint, a 'G' a guanint, a 'T' pedig a timint jelöli.
Adott egy DNS-szekvenciát képviselő string; számold meg, hogy az egyes nukleotidokból mennyi található benne. Ha a string olyan karaktereket tartalmaz, amelyek nem A, C, G vagy T, akkor az érvénytelen, és hibát kell jelezned.
Például:
"GATTACA" -> 'A': 3, 'C': 1, 'G': 1, 'T': 2
"INVALID" -> error
Előfordul, hogy váratlan problémákkal kell megbirkóznod, amelyek a kód futása közben merülnek fel. Dartban az ilyen helyzetek kezelésére kivételeket használhatsz.
Ha Dartban kivételt szeretnél dobni, használd a throw kulcsszót, utána pedig a dobni kívánt konkrét kivétel egy példányát.
Például a throw Exception() az alap Exception típus egy példányát dobja.
Ebben a feladatban egy egyedi kivételt kell definiálnod InvalidNucleotideException néven.
Ezt a kivételt akkor kell dobni, amikor érvénytelen nukleotidba ütközöl.
A tesztek csak azt ellenőrzik, hogy egy InvalidNucleotideException példány kerül-e átadásra, így szabadon megvalósíthatod úgy, ahogy jónak látod, amíg megfelelően dobod.
A Dart kivételeiről bővebben a kivételek dokumentációjában olvashatsz. Egyedi kivételeket úgy hozhatsz létre, hogy megvalósítod az Exception interfészt.
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Dart nyelvet 78 feladat segítségével, valódi emberi mentorálással, mindez ingyen.