Kurzusok
/
Dart
Dart
/
Feladatok
/
Nukleotidszámlálás
Nukleotidszámlálás

Nukleotidszámlálás

Könnyű

Utasítások

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

Megvalósítás

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.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Dart Exercism

Készen állsz elkezdeni a(z) Nukleotidszámlálás feladatot?

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.