(А. Богданов) Текстовый файл содержит геном коронавируса SARS-CoV-2 в виде последовательности из четырех типов нуклеотидов, обозначенных буквами A, T, G, C. Известно, что код S-белка, «отвечающего» за проникновение вируса в клетку, состоит из троек нуклеотидов (кодонов). Этот код начинается с ATGTTT, заканчивается на ACATAA и не содержит внутри себя кодонов TAA, TGA, TAG. Найдите количество кодонов, из которых строится код S-белка, включая стартовые и конечные кодоны.
Решение:
Python
s = open('6525.txt').readline().strip()
p0 = [x for x in range(len(s)) if s[x:x+6] == 'ATGTTT']
p1 = [x for x in range(len(s)) if s[x:x+6] == 'ACATAA']
q = 0
for p in p0:
for pe in p1[::-1]:
if pe > p and (pe - p) % 3 == 0:
tmp = [x for x in range(p, pe, 3) if s[x:x+3] in ('TAA', 'TGA', 'TAG')]
if not tmp:
q += pe - p + 6
break
print(q // 3)
Ответ: \(1274\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене