Форум » Массивы, сортировка, работа с файлами » 24-197 ВОЗМОЖНО не имеет ответ 28 » Ответить

24-197 ВОЗМОЖНО не имеет ответ 28

Артем6лет: рассмотрев возможные формулировки и проверив себя текстовым редактором, приходим к выводу что ответ 81/3=27 или 39/3=13 но не 28!!!! как так можно.... 28 вместо 27..... а может и есть где то длины 84, но программа не ведает [pre2]''' 197) Текстовый файл 24-197.txt содержит строку из заглавных латинских букв X, Y и Z, всего не более чем из 106 символов. Определите максимальное количество идущих подряд троек символов ZXY или ZYX. ''' f = open("files/5.txt") s = f.readline() f.close() count = maxcount = 0 stroka="" maxstroka = "" last_ch='' for i in range(len(s)-1): if (count % 3 == 0 and s[ i] == "Z") or \ (count % 3 == 1 and ((s[ i]+s[i+1] == "XY") or (s[ i]+s[i+1] == "YX"))) or \ (count % 3 == 2 and s[ i] in "XY" and s[i+1]=="Z" ): count += 1 stroka += s[ i] if count > maxcount: maxstroka = stroka maxcount = count last_ch = s[i+1] else: count = 0 stroka = "" maxcount += 1 maxstroka += last_ch print(maxcount) print(maxstroka) # 83 # ZXYZXYZYXZXYZYXZYXZXYZXYZYXZXYZXYZXYZXYZYXZYXZYXZXYZXYZYXZXYZXYZYXZYXZXYZYXZXYZYXZY # ZXYZXYZYXZXYZYXZYXZXYZXYZYXZXYZXYZXYZXYZYXZYXZYXZXYZXYZYXZXYZXYZYXZYXZXYZYXZXYZYX # если убрать хвост то 81 # в ответе 28 => всего символов 28*3=84 - противоречие #---------------------------------------------- count = maxcount = 0 stroka = maxstroka = "" flag = "" for i in range(len(s)): if (flag != ""): if (s[ i] == flag[count%3]): count += 1 stroka += s[ i] if count>maxcount: maxstroka = stroka maxcount = count else: flag = "" count = 0 stroka = "" elif (s[ i] == "Z"): if (s[i+1] + s[i+2] == "XY"): flag = "ZXY" count+=1 elif (s[i+1] + s[i+2] == "YX"): flag = "ZYX" count += 1 stroka = "Z" print(maxcount) print(maxstroka) # 40 # ZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZ # тут тем более [/pre2]

Ответов - 2

Поляков: Пожалуйста, оформите нормально программу (см. текст на желтом фоне вверху). Разбираться в этой каше никто не будет.

Артем6лет: сейчас только понял что может быть строка длинной 84, но тогда интересно где у меня ошибка [pre2]f = open("files/5.txt") s = f.readline() f.close() count = maxcount = 0 stroka="" maxstroka = "" last_ch='' for i in range(len(s)-1): if (count % 3 == 0 and s == "Z") or \ (count % 3 == 1 and ((s+s[i+1] == "XY") or (s+s[i+1] == "YX"))) or \ (count % 3 == 2 and s in "XY" and s[i+1]=="Z" ): count += 1 stroka += s if count > maxcount: maxstroka = stroka maxcount = count last_ch = s[i+1] else: count = 0 stroka = "" maxcount += 1 maxstroka += last_ch print(maxcount) print(maxstroka) # 83 # ZXYZXYZYXZXYZYXZYXZXYZXYZYXZXYZXYZXYZXYZYXZYXZYXZXYZXYZYXZXYZXYZYXZYXZXYZYXZXYZYXZY # ZXYZXYZYXZXYZYXZYXZXYZXYZYXZXYZXYZXYZXYZYXZYXZYXZXYZXYZYXZXYZXYZYXZYXZXYZYXZXYZYX # если убрать хвост то 81[/pre2]



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