Форум » Обработка символьных строк » #6525 » Ответить

#6525

Guesr_M: Как я понимаю, ответ неверный. Ибо если в формуле белка нет стоп-триады, то если заменить стоп-триаду на # и сплитануть, то в каком-то из эдементов этого списка будет находиться формула этого самого белка. Однако максимальная длина элемента почти в 10 раз меньше ответа. [pre2] with open('24-258.txt') as f: s = f.readline() s = s.replace('ATGTTT', '*') s = s.replace('ACATAA', '$') s = s.replace('TAA', '#') s = s.replace('TGA', '#') s = s.replace('TAG', '#') s = s.split('#') maxx = max(map(len, s)) print(maxx) [/pre2]

Ответов - 1

Ж: Ответ верен Триады идут именно тройками, а вы заменяете их не на местах троек, а где придется. Вот тут, к примеру: ATGTTATTGATTTTTCTTGTTTTATTGCCACTAGTCTC [pre2] s=open('c:/24-258.txt').readline() ma=j=0 for i in range(len(s)): if s[i:i+6]=='ATGTTT' : j=i+6 while j<=len(s): if s[j:j+3] not in ['TAA', 'TGA', 'TAG'] : j+=3 else: b=s[i:j+3] if b[-6::]=='ACATAA' and ma< len(b): ma=max(ma,len(b)) print(i,ma//3,s[i:i+ma]) break [/pre2]



полная версия страницы