هر یک از ما از والدین زیستی خود مجموعهای از دستورالعملهای شیمیایی را به ارث میبریم که با نام DNA شناخته میشوند و بر نحوهی ساخت بدن ما تأثیر میگذارند. همهی حیات شناختهشده به DNA وابسته است!
نکته: برای انجام این تمرین نیازی نیست چیزی دربارهی نوکلئوتیدها یا DNA بدانید.
DNA زنجیرهای بلند از مواد شیمیایی دیگر است و مهمترین آنها چهار نوکلئوتید هستند: آدنین، سیتوزین، گوانین و تیمین. یک زنجیرهی DNA میتواند میلیاردها عدد از این چهار نوکلئوتید را در خود داشته باشد و ترتیبی که این نوکلئوتیدها در آن ظاهر میشوند مهم است! ما به ترتیب این نوکلئوتیدها در بخشی از DNA، «توالی DNA» میگوییم.
یک توالی DNA را به صورت مجموعهای مرتب از این چهار نوکلئوتید نمایش میدهیم و روشی رایج برای این کار، استفاده از رشتهای از کاراکترها است؛ مثلاً «ATTACG» برای یک توالی DNA با ۶ نوکلئوتید. «A» برای آدنین، «C» برای سیتوزین، «G» برای گوانین و «T» برای تیمین.
با داشتن رشتهای که یک توالی DNA را نمایش میدهد، بشمارید که از هر نوکلئوتید چند تا موجود است. اگر رشته شامل کاراکترهایی باشد که A، C، G یا T نیستند، آنگاه نامعتبر است و باید خطایی را اعلام کنید.
برای مثال:
"GATTACA" -> 'A': 3, 'C': 1, 'G': 1, 'T': 2
"INVALID" -> error
شما باید یک نوع سفارشی به اسم DNA با یک تابع به اسم Counts تعریف کنید که دو مقدار را خروجی میدهد:
DNA دادهشدهکدام نوع برای رشتهی DNA مناسب است؟
بهترین نوعهای Go برای نمایش مقادیر خروجی کداماند؟
نگاهی به موارد تست بیندازید تا سرنخی دربارهی ورودیهای ممکن به دست آورید.
شاید برایتان سؤال باشد که فایل cases_test.go چیست.
این را در تمرین leap توضیح میدهیم.