Треки
/
Go
Go
/
Вправи
/
Підрахунок нуклеотидів
Підрахунок нуклеотидів

Підрахунок нуклеотидів

Легка

Вказівки

Кожен із нас успадковує від своїх біологічних батьків набір хімічних вказівок, відомий як ДНК, що впливає на те, як побудоване наше тіло. Усе відоме життя залежить від ДНК!

Примітка: щоб виконати цю вправу, не потрібно розуміти нічого про нуклеотиди чи ДНК.

ДНК - це довгий ланцюг інших хімічних речовин, найважливіші з яких - чотири нуклеотиди: аденін, цитозин, гуанін і тимін. Один ланцюг ДНК може містити мільярди цих чотирьох нуклеотидів, і порядок, у якому вони розташовані, має значення! Порядок цих нуклеотидів у певній ділянці ДНК ми називаємо «послідовністю ДНК».

Ми подаємо послідовність ДНК як упорядкований набір із цих чотирьох нуклеотидів, а поширений спосіб зробити це - записати рядок тексту (англ. string), наприклад «ATTACG» для послідовності ДНК із 6 нуклеотидів. «A» означає аденін, «C» - цитозин, «G» - гуанін, «T» - тимін.

Дано рядок тексту, що задає послідовність ДНК: порахуйте, скільки є кожного з нуклеотидів. Якщо рядок тексту містить символи, які не є A, C, G або T, тоді він неправильний, і слід повідомити про помилку.

Наприклад:

"GATTACA" -> 'A': 3, 'C': 1, 'G': 1, 'T': 2
"INVALID" -> error

Реалізація

Визначте власний тип 'DNA' з функцією 'Counts', яка повертає два значення:

  • підрахунок частоти для заданого ланцюга ДНК
  • помилку (якщо є неприпустимі нуклеотиди)

Який тип добре підійде для ланцюга ДНК?

Які типи Go найкраще підходять для подання вихідних значень?

Погляньте на тестові випадки, щоб отримати підказку про можливі вхідні дані.

Зауваження щодо тестів

Можливо, у вас виникає питання про файл cases_test.go. Ми пояснюємо його у вправі leap.

Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
Go Exercism

Час розпочати Підрахунок нуклеотидів?

Зареєструйтеся на Exercism, щоб вивчати й опановувати Go, а також 34 концепції165 вправ та справжнє наставництво від людей, і все це безкоштовно.