Треки
/
Rust
Rust
/
Вправи
/
Транскрипція РНК
Транскрипція РНК

Транскрипція РНК

Середня

Вступ

Ми працюємо в біоінженерній компанії, яка спеціалізується на розробці терапевтичних рішень.

Наша команда щойно отримала новий проєкт: розробити таргетну терапію для рідкісного типу раку.

Note

Усе це дуже складно, але основна ідея в тому, що іноді організм людини виробляє занадто багато певного білка. Це може спричинити найрізноманітніші проблеми.

Але якщо створити дуже специфічну молекулу (яку називають мікроРНК), вона може завадити виробленню цього білка.

Цю техніку називають РНК-інтерференцією.

Вказівки

Наше завдання - визначити комплемент РНК для заданої послідовності ДНК.

І ланцюги ДНК, і ланцюги РНК - це послідовності нуклеотидів.

Чотири нуклеотиди, що містяться в ДНК, - це аденін (A), цитозин (C), гуанін (G) і тимін (T).

Чотири нуклеотиди, що містяться в РНК, - це аденін (A), цитозин (C), гуанін (G) і урацил (U).

Для заданого ланцюга ДНК його транскрибований ланцюг РНК утворюється заміною кожного нуклеотиду на його комплемент:

  • G -> C
  • C -> G
  • T -> A
  • A -> U
Note

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

Нотатки щодо реалізації мовою Rust

Використовуючи приватні поля у структурах із публічними функціями new, що повертають Option або Result (як тут із DNA::new та RNA::new), ми можемо гарантувати правильність внутрішнього представлення DNA. Оскільки кожен коректний рядок тексту (англ. string) DNA має коректний рядок RNA, нам не потрібно повертати Result/Option з into_rna.

Це пояснює сигнатури типів, які ми побачимо в тестах.

І DNA::new(), і RNA::new() повертають тип Result<Self, usize>, де тип помилки usize позначає індекс першого некоректного символу (індекс символу, а не utf8).


Джерело

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

Час розпочати Транскрипція РНК?

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