Last active
January 18, 2022 07:56
-
-
Save evgeniyworkbel/4d1e73c3c9b6b33cee5c70e6ae1b6de0 to your computer and use it in GitHub Desktop.
Курс "Введение в программирование", Hexlet.io
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | |
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ДНК и РНК это последовательности нуклеотидов. | |
Четыре нуклеотида в ДНК это аденин (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