Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save evgeniyworkbel/4d1e73c3c9b6b33cee5c70e6ae1b6de0 to your computer and use it in GitHub Desktop.
Save evgeniyworkbel/4d1e73c3c9b6b33cee5c70e6ae1b6de0 to your computer and use it in GitHub Desktop.
Курс "Введение в программирование", Hexlet.io
const dnaToRna = (str) => {
if (str === '') {
return '';
}
let newStr = '';
for (let i = 0; i < str.length; ++i) {
switch (str[i]) {
case 'G':
newStr = newStr + 'C';
break;
case 'C':
newStr += 'G';
break;
case 'T':
newStr += 'A';
break;
case 'A':
newStr += 'U';
break;
default:
return null;
}
}
return newStr;
};
export default dnaToRna;
export default (n) => {
let rna = '';
for (let i = 0; i < n.length; i += 1) {
switch (n[i]) {
case 'G':
rna += 'C';
break;
case 'C':
rna += 'G';
break;
case 'T':
rna += 'A';
break;
case 'A':
rna += 'U';
break;
default:
return null;
}
}
return rna;
};
ДНК и РНК это последовательности нуклеотидов.
Четыре нуклеотида в ДНК это аденин (A), цитозин (C), гуанин (G) и тимин (T).
Четыре нуклеотида в РНК это аденин (A), цитозин (C), гуанин (G) и урацил (U).
Цепь РНК составляется на основе цепи ДНК последовательной заменой каждого нуклеотида:
G -> C
C -> G
T -> A
A -> U
Задание:
Реализуйте и экспортируйте функцию dnaToRna по умолчанию, которая принимает на вход цепь ДНК и возвращает соответствующую цепь РНК (совершает транскрипцию РНК).
Если во входном параметре нет ни одного нуклеотида (т.е. передана пустая строка), то функция должна вернуть пустую строку. Если в переданной цепи ДНК встретится "незнакомый" нуклеотид (не являющийся одним из четырех перечисленных выше), то функция должна вернуть null.
dnaToRna('ACGTGGTCTTAA'); // 'UGCACCAGAAUU'
dnaToRna('CCGTA'); // 'GGCAU'
dnaToRna(''); // ''
dnaToRna('ACNTG'); // null
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment