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

задание 189 задание 24

flo23: 189) // Текстовый файл 24-181.txt содержит строку из заглавных латинских букв и точек, всего не более чем из 106 символов. Определите максимальное количество идущих подряд символов, среди которых нет точек, а количество гласных (букв A, E, I, O, U, Y) не превышает 7. МОЯ программа: (ответ не сходится, в чем моя ошибка?) f=open('24-181.txt') s=f.readline() #s='AK......LUOG.H.G.H.G..OIS.D........AFRTRTRTRTRTRTRTRTR' k=0 mk=0 d='' b=[] for i in range (len(s)): if s!='.' : d=d+s else: if d!='': b.append(d) d='' if d!='': b.append(d) c=[] for i in range(len(b)): p=b if (p.count('A')+p.count('E')+p.count('I')+p.count('O')+p.count('U')+p.count('Y'))<=7: c.append(len(p)) print(max(c))

Ответов - 10

Поляков: На сайте лежат решения всех 24-х задач. Найдите нужное (№ 189) и сравните с вашим.

flo23: Спасибо за подсказку,но я хочу найти ошибку в моем решении. Решения на сайте не всегда бывают понятными...

Поляков: Тогда желательно оформить программу. См. надпись на желтом фоне. В том, что есть, разобраться невозможно.


flo23: нАПИСАЛА ЕЩЕ ОДИН ВАРИАНТ РЕШЕНИЯ, НО ТОЖЕ ДАЕТ НЕВЕРНЫЙ ОТВЕТ. зНАЧИТ Я ЧТО-ТО УПУСКАЮ, НЕ ДОПОНИМАЮ. пОДСКАЖИТЕ ЧТО Я НЕ УЧИТЫВАЮ

flo23: еще один вариант

flo23: СПАСИБО ЗА ПОДСКАЗКИ...ПРИЦЕПИЛА КАРТИНКИ, ТАК КАК НЕ ПОНЯЛА О КАКОМ ЖЕЛТОМ ФОНЕ ИДЕТ РЕЧЬ....ПОТОМ СПУСТЯ НЕКОТОРОЕ ВРЕМЯ НАТКНУЛАСЬ НА РАМКУ ЖЕЛТОГО ЦВЕТА С ПОМЕТКАМИ... спасибо, УЧИМСЯ [pre2] f=open('24-181.txt') s=f.readline() #s='AK......LUOG.H.G.H.G..OIS.D........AFRTRTRTRTRTRTRTRTR' s=s.split('.') #print(s) c=[] for i in range(len(s)): p=s f1=(p.count('A')+p.count('E')+p.count('I')+p.count('O')+p.count('U')+p.count('Y')) if f1<=7: #print(f1) c.append(len(s)) print(c,max(c)) [/pre2]

flo23: [pre2] s=open('24-181.txt').readline() #s='df.dAAAAAAAAf.fddg.gd..df.df.dff' s=s.replace('.',' ') #разбиваем на куски print(s) d='' b=[] for i in range(len(s)): if s[ i]!=' ': d=d+s[ i] else: if d!='': b.append(d) d='' if d!='': b.append(d) print(b) c=[] for i in range(len(b)): if (b[ i].count('A')+b[ i].count('E')+b[ i].count('I')+b[ i].count('O')+b[ i].count('U')+b[ i].count('Y'))<=7: c.append(len(b)) print(max(c)) [/pre2]

Поляков: 1) Для разбиения строки на части по пробелам (или другим разделителям) лучше использовать метод s.split() 2) Вы считаете, что решение - это весь кусок в котором нет точек. А может быть, что это часть более длинного куска.

flo23: Спасибо за ответ. А не могли бы вы привести пример строки, которую не учитывает моя программа.

Поляков: flo23 пишет: А не могли бы вы привести пример строки, которую не учитывает моя программа. s='.dAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAf.B'



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