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

задача 4528

nusha.zvereva: Добрый день, решала задачу номер 4528 Текстовый файл 24-181.txt содержит строку из заглавных латинских букв и точек, всего не более 106 символов. Определите максимальное количество идущих подряд символов, среди которых не более пяти точек. f=open('/Users/annazvereva/Desktop/24д.txt') s=f.readline() clean=mlean=cntt=0 for i in range (len(s)): if s in "QWERTYUIOPASDFGHJKLZXCVBNM.": clean+=1 if s== "." : cntt+=1 if cntt<=5: mlean=max(mlean,clean) else: clean=cntt=0 print(mlean) выходит ответ почему-то 413(в ответах 550), уже голову сломала, как можно иначе написать, все одно и то же число.

Ответов - 1

zachto: Одно из возможных решений. [pre2] import sys sys.stdin = open(r"C:\Users\nickolas\Downloads\24-181.txt") s = str(input()) cnt = 0 maxlen = 0 gg = [[0, 0]] for i in range(len(s)): if s[ i] == '.': gg.append([i, 1]) if i - 1 >= 0 and s[i - 1] != '.': gg.append([i - 1, 0]) if i + 1 < len(s) and s[i + 1] != '.': gg.append([i + 1, 0]) gg.append([999999, 0]) gg.sort() for i in range(len(gg)): cnt = 0 for j in range(i, min(len(gg), i + 20)): if gg[j][1] == 1: cnt += 1 if cnt <= 5: maxlen = max(maxlen, gg[j][0] - gg[ i][0] + 1) else: break print(maxlen) [/pre2]



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