В единственной строке файла находится строка
состоящая не более чем из
маленьких букв английского алфавита. Определите можно ли добавить некоторое (возможно нулевое) количество латинских букв в начало строки, чтобы строка в итоге стала палиндромом.
Напомним вам, что палиндромом называются строки, которые читаются одинаково как слева-направо, так и справа-налево.
В ответ запишите наименьшее необходимое количество латинских букв.
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