مسیرها
/
Go
Go
/
تمرین‌ها
/
شمارش نوکلئوتید
شمارش نوکلئوتید

شمارش نوکلئوتید

آسان

دستورالعمل‌ها

هر یک از ما از والدین زیستی خود مجموعه‌ای از دستورالعمل‌های شیمیایی را به ارث می‌بریم که با نام 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 توضیح می‌دهیم.

ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Go Exercism

آماده‌اید شمارش نوکلئوتید را شروع کنید؟

در Exercism ثبت‌نام کنید تا Go را همراه با 34 مفهوم165 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.