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