Поиск наибольшей подстроки с заданными ограничениями

Не понимаю, как решить задачу на Python:

Текстовый файл содержит только заглавные буквы латинского алфавита ABC…Z. Определите максимальное количество идущих подряд символов, среди которых каждая из букв UVWXYZ встречается не более ста раз.

Подскажите, пожалуйста, как решить.


Ответы (1 шт):

Автор решения: geo
txt = [
    'U' * 1
    , 'U' * 2
    , 'Z' * 1
    , 'Z' * 2
    , 'X' * 5
    , 'U' * 1
    , 'B' * 1
    , 'C' *1
    , 'Z' * 4
    , 'B' * 2
    , 'K' * 5
]

with open('1611529.txt', 'tw+') as fl:
    fl.writelines(txt)

total = {}
with (open('1611529.txt', 'tr') as fl):
   txt = fl.read()
   prev_symbol = txt[0]
   i = 1
   lst = []
   for _ in txt[1:]:
       if _ == prev_symbol:
           i+=1
       else:
           lst.append((prev_symbol,i))
           i = 1
           prev_symbol = _
   lst.append((prev_symbol, i))

for i in lst:
    total.setdefault(i[0],0)
    if total.get(i[0])<i[1]:
       total[i[0]] = i[1]

total = {key:value for key, value in total.items() if (value <=100 and key in 'UVWXYZ') or key not in 'UVWXYZ'}

for item in sorted(total.items(), key = lambda i: -i[1]):
    print(item)
→ Ссылка