Текстовый файл состоит не более чем из заглавных букв латинского алфавита. Гарантируется, что количество символов в строке четное. Вам нужно заменить некоторые латинские буквы на другие таким образом, чтобы из символов строки можно было составить палиндром. Например, для строки AVRORA можно заменить O на V или V на O, тогда из данного набора букв мы сможем составить палиндром.
Для выполнения этого задания следует написать программу. Воспользуйтесь файлом «Задание_46_ДЗ». В ответе запишите минимальное количество замен, которые нужно сделать.
f = open(«Задание_46_ДЗ.txt»)
s = f.read()
# используем индексы буквы в таблице ASCII
# A — 65, Z — 90
ar = [0] * 100
for i in range(len(s)):
ar[ord(s[i])] += 1
# Если какой-то символ встречается нечетное число раз
# то 1 экземпляр этого символа можно поменять на другой символ,
# который тоже встречается нечетное число раз
# так как строка имеет четную длину, если найдется символ,
# который встречается
# нечетное число раз, то к нему всегда найдется пара
ans = 0
for i in range(65, 91):
if ar[i] % 2 == 1:
ans += 1
# мы получили количество символов, которые встретились
# нечетное число раз,
# мы можем поменять ровно половину из них, а другую не трогать
print(ans//2)
s = f.read()
# используем индексы буквы в таблице ASCII
# A — 65, Z — 90
ar = [0] * 100
for i in range(len(s)):
ar[ord(s[i])] += 1
# Если какой-то символ встречается нечетное число раз
# то 1 экземпляр этого символа можно поменять на другой символ,
# который тоже встречается нечетное число раз
# так как строка имеет четную длину, если найдется символ,
# который встречается
# нечетное число раз, то к нему всегда найдется пара
ans = 0
for i in range(65, 91):
if ar[i] % 2 == 1:
ans += 1
# мы получили количество символов, которые встретились
# нечетное число раз,
# мы можем поменять ровно половину из них, а другую не трогать
print(ans//2)
Ответ: 5