हममें से हर व्यक्ति को अपने जैविक माता-पिता से DNA के रूप में जानी जाने वाली रासायनिक सूचनाओं का एक समूह विरासत में मिलता है, जो तय करता है कि हमारा शरीर किस तरह बनता है। ज्ञात सारा जीवन DNA पर निर्भर है!
ध्यान दें: इस अभ्यास को पूरा करने के लिए आपको न्यूक्लियोटाइड या DNA के बारे में कुछ भी समझने की ज़रूरत नहीं है।
DNA अन्य रसायनों की एक लंबी शृंखला है, और इनमें सबसे महत्वपूर्ण हैं चार न्यूक्लियोटाइड: एडेनीन, साइटोसीन, ग्वानीन और थाइमीन। DNA की एक अकेली शृंखला में इन चार न्यूक्लियोटाइड की अरबों प्रतियाँ हो सकती हैं, और यह बहुत मायने रखता है कि वे किस क्रम में आती हैं! DNA के किसी हिस्से में इन न्यूक्लियोटाइड के इसी क्रम को हम "DNA सीक्वेंस" कहते हैं।
हम एक DNA सीक्वेंस को इन चार न्यूक्लियोटाइड के एक क्रमबद्ध संग्रह के रूप में दर्शाते हैं, और ऐसा करने का एक आम तरीका है अक्षरों की एक स्ट्रिंग, जैसे छह न्यूक्लियोटाइड वाले DNA सीक्वेंस के लिए "ATTACG"। यहाँ 'A' का मतलब एडेनीन, 'C' का साइटोसीन, 'G' का ग्वानीन और 'T' का थाइमीन है।
आपको एक ऐसी स्ट्रिंग दी जाएगी जो एक DNA सीक्वेंस को दर्शाती है। गिनिए कि हर न्यूक्लियोटाइड कितनी बार आता है। अगर स्ट्रिंग में A, C, G या T के अलावा कोई और अक्षर है, तो वह अमान्य है और आपको एरर का संकेत देना चाहिए।
उदाहरण के लिए:
"GATTACA" -> 'A': 3, 'C': 1, 'G': 1, 'T': 2
"INVALID" -> error
आपको 'DNA' नाम का एक कस्टम टाइप बनाना है, जिसका 'Counts' फंक्शन दो वैल्यू देता है:
DNA स्ट्रैंड के लिए अच्छा टाइप कौन-सा होगा?
आउटपुट वैल्यू को दर्शाने के लिए Go का सबसे अच्छा टाइप कौन-सा है?
संभावित इनपुट क्या हो सकते हैं, इसका संकेत पाने के लिए टेस्ट केस पर एक नज़र डालिए।
आप सोच रहे होंगे कि cases_test.go फाइल क्या है।
हम इसे leap अभ्यास में समझाते हैं।
Exercism पर साइन अप कीजिए और Go को 34 कॉन्सेप्ट165 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।