Текстовый файл состоит не более чем из символов X, Y и Z.
Определите самый часто встречающийся в этом файле символ и четную максмальную длину подстроки, состоящей только из этого символа, ограниченную любыми другими символами.
Также определите самый редко встречающийся в этом файле символ и нечечтную максмальную длину подстроки, состоящей только из этого символа, ограниченную любыми другими символами.
В ответе запишите сначала первую найденную длину, затем через пробел второую.
f = open(’24.txt’)
s = f.readline() # Считываем строчку
# Определяем, сколько в ней символов X, Y и Z:
print(’X:’, s.count(’X’),
’Y:’, s.count(’Y’),
’Z:’, s.count(’Z’))
# Получаем X: 500019 Y: 333396 Z: 166585
# X - самый часто встречающийся в файле символ
# Z - самый редко встречающийся в файле символ
# Сначала найдём четную максимальную длину подстроки, состоящей из символа X
s1 = s.replace(’Y’, ’Z’) # Заменяем все символы Y на символы Z
s1 = s1.split(’Z’) # Разбиваем строчку по символу Z
# Каждый элемент массива s1 (строчки, состоящие из символов X, и пустые строчки)
# превращаем в их длину.
# То есть, если была строчка ’XXXXX’, то станет просто число 5.
s1 = list(map(len, s1))
mc = max([i for i in s1 if i % 2 == 0]) # Составляем массив mc только из чётных длин массива s1
# и берём максимальную
# Найдём нечетную максимальную длину подстроки, состоящей из символа Z
s2 = s.replace(’Y’, ’X’) # Заменяем все символы Y на символы X
s2 = s2.split(’X’) # Разбиваем строчку по символу X
# Каждый элемент массива s2 (строчки, состоящие из символов Z, и пустые строчки)
# превращаем в их длину.
s2 = list(map(len, s2))
mnc = max(
[i for i in s2 if i % 2 == 1]) # Составляем массив mnc только из нечётных длин массива s1
# и берём максимальную
# Выводим найденные длины
print(mc, mnc)
Ответ: 16 7