Информатика, вопрос задал kadeiop123 , 1 год назад

Неправильный палиндром.
Помогите пожалуйста написать программу на Паскаль/Питон. Я на над ней уже 10 часов сижу)

Палиндромом называется слово, которое читается одинаково как справа налево, так и слева направо, например в англ.языке такими словами являются "radar" и "racecar".
Света изучает англ.яз и решила принять участие в дистанционном конкурсе знатоков англ.языка. Но, когда она писала ответ на задание "найдите самое длинное слово, которое является палиндромом" , ошиблась и нажала на клавиатуре одну лишнюю клавишу.
Определите какую букву нужно удалить в набранном Светой слове, чтобы это слово стало палиндромом.
Программа получает на вход строку из строчных англ букв, содержащую не менее 2 и не более 100 000 символов.
Программа должна вывести единственное число- номер буквы в строке, при удалении которой строка становится палиндромом. Если при удалении любой буквы слово не станет палиндромом , программа должна вывести число 0.
Примеры входных и выходных данных.
Ввод: "racecar" Вывод: 6
Ввод: "car" вывод: 0.

Ответы на вопрос

Ответил radiation2033
8

Ответ:

text=input()

text_list=list(text)

reverse_list=list(text[::-1])

error=None

for i in range(0,len(text_list)):

   try:

       if(text_list[i]!=reverse_list[i] and error==None):

           error=len(text)-i

           del text_list[len(text)-i-1]

           del reverse_list[i]

       elif(text_list[i]!=reverse_list[i] and error!=None):

           error=0

           break

   except IndexError:

       pass

print(error)

Объяснение:

P.S. оптимизация может быть не очень


yullinka: а как на паскаль?
Новые вопросы