আমাদের প্রত্যেকে আমাদের জৈবিক পিতা-মাতার কাছ থেকে 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
ইনপুট স্ট্রিংয়ের বাফারটি লিনিয়ার মেমরির ৬৪ থেকে ৩১৯ নম্বর বাইট ব্যবহার করে।
ফলাফলটি চারটি উপাদানের একটি টাপল হিসেবে রিটার্ন করতে হবে: (i32 i32 i32 i32). প্রতিটি সংখ্যা এই ক্রমে A, C, G এবং T অক্ষরগুলোর গণনা নির্দেশ করে।
Exercism-এ সাইন আপ করুন, WebAssembly ট্র্যাকের 87টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।