На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение





Сообщение: 19
ссылка на сообщение  Отправлено: 31.01.24 14:50. Заголовок: 6526


Здравствуйте, не сходится с ответом решение ниже
a = open('24-259.txt').readline() 
a=a.split('TAA')
m=-1
for i in range(len(a)):
w=a
if len(w)>=3 and w[0:3]=='ATG' and not 'TAA' in w and not 'TGA' in w and not 'TAG' in w:
m=max(m,len(w)+3)
print(m)

Может быть недопонимаю условие? Подскажите

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 5 [только новые]





Сообщение: 7
ссылка на сообщение  Отправлено: 09.02.24 18:58. Заголовок: Вы не рассматриваете..


Вы не рассматриваете ситуацию, когда ATG не в начале w. Т.е. правильнее искать в строках первое вхождение ATG и проверять, что TGA и TAG не встречаются в срезе. И ещё момент. Когда разбили строку по TAA, то строки вида TAATG.... "испортились", в начале строки А пропала. Т.е. надо учесть строки, начинающиеся на TG
 
a = open('24-259.txt').readline()
a = a.split('TAA')
m = -1
for w in a:
i = w.find('ATG')
if i != -1 and 'TGA' not in w[i:] and 'TAG' not in w[i:]:
m = max(m, len(w) - i + 3)
if w[:2] == 'TG' and 'TGA' not in w and 'TAG' not in w:
m = max(m, len(w) - i + 4)
print(m)

Этот код выдаёт ответ 80

Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 8
ссылка на сообщение  Отправлено: 09.02.24 19:11. Заголовок: неверный ответ


Так тоже получается 80:
 
a = open('24-259.txt', 'r').readline()
mk = 0
k = 0
for i in range(len(a) - 2):
if a[i:i+3] == 'ATG':
k += 1
elif a[i:i+3] == 'TAA':
mk = max(mk, k + 3)
k = 0
elif a[i:i+3] == 'TGA' or a[i:i+3] == 'TAG':
k = 0
elif k > 0:
k += 1
print(mk)

Ошибка в ответах? Или мы ошибаемся в решениях?

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 262
ссылка на сообщение  Отправлено: 21.02.24 22:49. Заголовок: У вас не учтен вариа..


У вас не учтен вариант, когда внутри строки встречается комбинация ATG. И когда комбинация TGA идет к примеру со второй позиции (ей там быть можно)
Прогоните на строке a='ATGATGTAA'
С доработкой код выдает верный ответ.
 
a=open('c:/24-259.txt').readline()
mk = 0; nach=True; k=0
for i in range(len(a) - 2):
if nach and a[ i:i + 3] == 'ATG':
nach=False; k+=1
if not nach: k += 1
if k > 3 and (a[ i:i + 3] == 'TGA' or a[ i:i + 3] == 'TAG'): k = 0
if a[ i:i + 3] == 'TAA':
mk = max(mk, k + 3)
k = 0
print(mk)


Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 21
ссылка на сообщение  Отправлено: 15.04.24 21:52. Заголовок: Получилось больше, чем в ответе, строка такая есть в файле


У меня получилось больше, учла все вхождения ATG, которые могут быть внутри подстроки, проверила в файле, действительно, данная подстрока длины 135 (ATGTGCTGGAATGCCCGCATTCGCGAAACAGTCCAGCAGCGCCGTCCGATGATCTCGGCTGCATCAGTTCTCGAGCAAAAATGGCATGCGAAATGTCGATACATACACAGCGACCCTACTATGGATCAAGGCTAA) есть в файле и удовлетворяет условию. Код
 
a = open('24-259.txt').readline()
a=a.replace('ATG','@')
a=a.replace('TAA','*')
ma=-1
while len(a)>0:
if a.count('@')>0 and a.count('*')>0:
ind1=a.index('@')
ind2=a.index('*')
s=a[ind1+1:ind2]
if s.count('TGA')==0 and s.count('TAG')==0:
le=len(s)-s.count('@')+s.count('@')*3
ma=max(ma,le+6)
a=a[ind2+1:]
else:
break
print(ma)


Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 317
ссылка на сообщение  Отправлено: 16.04.24 12:52. Заголовок: Делая замену a=a.rep..


Делая замену a=a.replace('ATG','@') , вы не сможете поймать некоторые вхождения TGA
В вашей цепочке именно по этой причине есть комбинация TGA
ATGTGCTGGAATGCCCGCATTCGCGAAACAGTCCAGCAGCGCCGTCCGATGATCTCGGCTGCATCAGTTCTCGAGCAAAAATGGCATGCGAAATGTCGATACATACACAGCGACCCTACTATGGATCAAGGCTAA
 
s = open('d:/24-259.txt').readline()
l=[0]
for i in range(len(s)):
j=i+max(l)+1
while j<=len(s):
ss=s[i:j]
if ss[:3]=='ATG' and ss[-3:]=='TAA' and ss[3:-3].count('TAA')==0 and ss[3:-3].count('TGA')==0 and ss[3:-3].count('TAG')==0:
l.append(len(ss))
print(max(l),ss)
elif ss[-3:]=='TAA':
break
j+=1


Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 144
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет