Тема 24. Программирование - Обработка символьной информации
24.04 Программирование - Обработка символьной информации
Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела программирование - обработка символьной информации
Решаем задачу:

Ошибка.
Попробуйте повторить позже

Задача 1#29920

Текстовый файл состоит не более чем из 104  строк, каждая из которых состоит не более чем из 104  заглавных букв латинского алфавита. В строке, содержащей не менее 150 символов Z  найдите максимальное расстояние (разница в индексах) между двумя одинаковыми символами, между которым не повторяется этот символ. Если строк, содержащих не менее 150 символов Z  несколько, то используйте последнюю из таковых для поиска маскимального расстояния.

Пример:

ABBAC

P REREOOOOOR

QW  ERT Y Q

Среди данных строк нет ни одной, где количесто символов Z  не менее 150. Если забыть про это условие (в рамках примера), то максимальное расстояние между символами R  во второй строке и оно равно 7.

Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_48_ДЗ". В ответе запишите искомое расстояние.

Вложения к задаче
Показать ответ и решение

Решение 1

f = open(’Задание_48_ДЗ__tctn.txt’)
t = ’’
for i in f:
    if i.count(’Z’) >= 150:
        t = i
alf = ’QWERTYUIOPASDFGHJKLZXCVBNM’
ans = 0
for i in range(26):
    m = t.split(alf[i])
    for j in m[1:-1]:
        ans = max(len(j), ans)
print(ans + 1)

Решение 2

f = open("Задание_48_ДЗ.txt")
maxim = 0
alph = sorted(list("qwertyuiopasdfghjklzxcvbnm".upper()))
for s in f:
    s = s.strip()
    last_symbol = [-1] * 26
    if s.count("Z") >= 150:
        maxim = 0
        for i in range(len(s)):
            ind_sym = alph.index(s[i])
            if last_symbol[ind_sym] != -1:
                if i - last_symbol[ind_sym] >= 2:
                    maxim = max(i - last_symbol[ind_sym], maxim)
            last_symbol[ind_sym] = i
print(maxim)

 

Ответ: 274

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное обучение
в Школково

Для детей ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Брянской областей, а также школьникам, находящимся в пунктах временного размещения Крыма обучение на платформе бесплатное.

Налоговые вычеты

Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей

Бесплатный доступ к любому курсу подготовки к ЕГЭ или олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

cyberpunkMouse
cyberpunkMouse
Рулетка
Вы можете получить скидку в рулетке!