def longestPalindrome(str): s=list(str) maxlen=0 pos=0 for i in range(len(s)): low=i-1 high=i+1 while low>=0 and high<len(s): if s[low]==s[high]: low-=1 high+=1 else: break if i-low-1>maxlen: maxlen=i-low-1 pos=i return(pos,maxlen)
注解:该方法是从第一个元素开始遍历,每遍历到一个元素就开始左右各放置一个指针,分别进行判断是否左右对称位置字符相等。时间复杂度大概为O(n^2)