from sys import argv def pallindrome(str): '''returns the longest substring pallindrome in str''' if str: index = 0 if len(str) == 2: if str[0] == str[1]: length = 2 else: length = 1 else: length = 1 for i in range(1,(len(str)+1)/2): count = 1 for j in range(1,i+1): if str[i-j] == str[i+j]: count += 2 else: break if count > length: length = count index = i - count/2 count = 0 for j in range(i): if str[i-j] == str[i+j+1]: count += 2 else: break if count > length: length = count index = i - count/2 + 1 tl = len(str) - 1 for i in range(1,(len(str)+1)/2): tl -= 1 count = 1 for j in range(1,i+1): if str[tl-j] == str[tl+j]: count += 2 else: break if count > length: length = count index = tl - count/2 count = 0 for j in range(i): if str[tl-j] == str[tl+j+1]: count += 2 else: break if count > length: length = count index = tl - count/2 + 1 return str[index:index+length] else: return "" if __name__ == "__main__": if len(argv) == 3: ans = pallindrome(argv[1]) for i in range(int(argv[2])-1): pallindrome(argv[1]) print ans