题解 | #最长回文子串#
最长回文子串
https://www.nowcoder.com/practice/12e081cd10ee4794a2bd70c7d68f5507
# 不能用二分法,因为 4长度的窗口 有回文,不代表 3长度的窗口也能有回文,没有递进性。 def judge(nums): # 判断回文 l,r = 0,len(nums)-1 while l<=r and nums[l]==nums[r]: l += 1 r -= 1 if l > r: return True return False def check(nums,x): # 检查x长度 是否存在为回文。 for i in range(len(nums)-x+1): # i 是一段窗口的起始位置。x 是窗口长度。 if judge(nums[i:i+x]): return True return False # print(check(['a','b','b','a'],4)) if __name__=='__main__': a = list(input()) n = len(a) max_length = 0 for i in range(n+1): if check(a,i): max_length = i print(max_length)
