Форум » Обработка символьных строк » задача 24, номер 167 » Ответить

задача 24, номер 167

XuverTheBest: Текстовый файл 24-164.txt состоит не более чем из 106 заглавных латинских букв (A..Z). Файл разбит на строки различной длины. В строках, содержащих менее 20 букв E, нужно определить и вывести максимальное расстояние между одинаковыми буквами в одной строке. with open('24-164.txt') as file: max = 0 for i in file: start = file.readline() if start.count('E') < 20: s = start for x in range(len(s)): if s.count(s[x]) > 1: distance = s.rfind(s[x]) - s.find(s[x]) if distance > max: max = distance print(max) У меня ответ - 908, а на сайте - 947, хотя сама строка, которая имеет меньше 20 "E" состоит из 911 символов. Что у меня не так ?

Ответов - 2

XuverTheBest: Таким же способом решал предыдущую задачу (задача 24, номер 166) и у меня получился ответ, как и у вас

Поляков: У вас цикл for i in file уже перебирает все строки файла, а вы потом через file.readline еще раз читаете. Нужно так: [pre2] with open('24-164.txt') as file: max = 0 for start in file: if start.count('E') < 20: s = start for x in range(len(s)): if s.count(s[x]) > 1: distance = s.rfind(s[x]) - s.find(s[x]) if distance > max: max = distance print(max)[/pre2]



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