Тема 24. Обработка символьной информации

24.03 Прочие прототипы

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

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

Задача 1#63751

В единственной строке файла 24-5.txt находится строка s  состоящая не более чем из 107  маленьких букв английского алфавита. Определите можно ли добавить некоторое (возможно нулевое) количество латинских букв в начало строки, чтобы строка в итоге стала палиндромом.

Напомним вам, что палиндромом называются строки, которые читаются одинаково как слева-направо, так и справа-налево.

В ответ запишите наименьшее необходимое количество латинских букв.

Вложения к задаче
Показать ответ и решение
S = open("24-5.txt").readline()

ans = -1  # Переменная для ответа
for i in range((len(S) + 1) // 2 - 1, -1, -1):  # Перебор "середины" строки
    chet = True  # Переменная-флаг для палиндрома чётной длины
    nechet = True  # Переменная-флаг для палиндрома нечётной длины
    for j in range(i + 1):  # Перебираем зеркальные символы для проверки палиндрома

        if S[i - j] != S[i + j]:  # Симметрия для нечётной длины нарушена
            nechet = False

        if 2 * i + 1 == len(S):  # Изначально i не может являться серединой строки с чётной длиной
            chet = False
        elif S[i - j] != S[i + j + 1]:  # Симметрия для чётной длины нарушена
            chet = False

        if nechet == False and chet == False:
            break

    if chet:  # Для текущего i можно получить палиндром чётной длины
        ans = len(S) - 2 * (i + 1)
        break
    elif nechet:  # Для текущего i можно получить палиндром нечётной длины
        ans = len(S) - 2 * i - 1
        break

print(ans)

Ответ: 592123

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

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

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

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

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

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

Бесплатное онлайн-обучение

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

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

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

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

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

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

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

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