This code finds the index in the string and removes the one which will make the string a palindrome. If the string is already a palindrome, it should return -1.This code works correct, but I am looking for a better implementation of it. Here is the problem description.def palindrome(string):    return string == string[::-1]def palindrome_index(string, start, end):    while start < end:        if string[start] == string[end]:            start, end = start+1, end-1            continue        if palindrome(string[start:end]): return end        return start    return -1N = input()strings = [str(raw_input()) for _ in range(N)]for string in strings:    print palindrome_index(string, 0, len(string)-1)Can this be written shorter?  The size of input strings can be as large as 105, hence a recursive approach won't work.
Index of letter removed to make string palindrome
python;programming challenge;palindrome
FlowThe continue and returns inside the while loop make me feel the loop is doing too much.  I would say that the loop should be for moving start and end and then put the logic outside of it:while ( start < end and string[start] == string[end] ):    start, end = start + 1, end - 1# now figure out the resultResultThe problem states that all strings that are not already palindromes are only off by one character.Our loop moved start and end such that if start == end, then the string is a palindrome.  It has also moved these indices such that if the string is not a palindrome, one of them is 'pointing' to the character that needs to be removed.To figure out which index is correct, I chose to compare the character pointed to by start to the character pointed to by end - 1.if ( start == end ):    return -1elif ( string[ start ] == string[ end - 1 ] ):    return endelse:    return startPalindrome FunctionYou don't need this function at all because we know that if the string is not a palindrome, it is only off by one character.  We were able to figure out the index of this character just by moving start and endAnyway, since the function returns a boolean, it should be named isPalindrome 