Форум » Обработка символьных строк » z 24. 28 » Ответить

z 24. 28

AnnaPershina: Подскажите, пожалуйста, где ошибка: [pre2]with open("k7b-2.txt","r") as f: s=f.readline() k=0 maxa=0 for i in range(len(s)-1): if ((s[ i]=="D") and (k%4==0)) or ((s[ i]=="B") and (k%4==1)) or ((s[ i]=="A") and (k%4==2)) or ((s[ i]=="C") and (k%4==3)) : k+=1 else: if k>maxa: maxa=k k=0 if k>maxa: maxa=k print(maxa) [/pre2] #otvet 95 а у меня 91

Ответов - 7

AnnaPershina: Причем ,если решить вот так, то ответ верный [pre2] with open("k7b-2.txt","r") as f: s=f.readline() k=0 maxa=0 s1=s.replace('DBAC','1111') for char in s1: if (char=="1"): k+=1 else: if k>maxa: maxa=k k=0 if k>maxa: maxa=k t=s1.find("1"*92) print(t) print(s1[8215],s[8216],s[8217],s[8218]) print(s1) print(maxa+3) #otvet 95 [/pre2]

AnnaPershina: аналогичная 29 задача решается правильно [pre2] with open("k7b-3.txt","r") as f: s=f.readline() k=0 maxa=0 for i in range(len(s)-1): if ((s=="B") and (k%4==0)) or ((s=="A") and (k%4==1)) or ((s=="F") and (k%4==2)) or ((s=="E") and (k%4==3)) : k+=1 else: if k>maxa: maxa=k k=0 if k>maxa: maxa=k print(maxa) [\pre2]

cabanov.alexey: Решение подобных задач описано в файле с 24 заданиями [pre2] f = open('k7b-2.txt') s = f.readline() k = 0 m = 0 for x in s: if x=='D' and k%4==0 or x=='B' and k%4==1 or x=='A' and k%4==2 or x=='C' and k%4==3: k+=1 m = max(m,k) elif x=='D': k = 1 else: k = 0 print(m)[/pre2]


AnnaPershina: Подскажите, пожалуйста, для чего у Вас в коде эти строки: elif x=='D': k = 1

AnnaPershina: Я понимаю,что решать можно по-разному. И у меня есть другие решения, но что в моем самом первом решении не так? Что я не учитываю, пропускаю, упускаю? Что работает не так?

cabanov.alexey: Вы пропускаете случай, когда одна последовательность сменяется другой DABCDAB DABCDABCDABC

AnnaPershina: Дошло! Огромное спасибо!!!



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