''' 如果某一段位置 [m, n] 为对称的,那如果arr[m-1] == arr[n+1], 那 [m-1, n+1] 也是对称的 可以使用一个队列进行逐渐地扩展 ''' arr = list(str(input())) q = [[i, i] for i in range(len(arr))] for i in range(len(arr)-1): if arr[i+1] == arr[i]: q.append([i, i+1]) ans = 1 while len(q) > 0: nq = [] for m, n in q: if m-1 <0 or n+1>=len(arr): continue if arr[m-1] == arr[n+1]: nq.append([m-1, n+1]) ans = max(ans, n-m+3) q = nq # print(nq) print(ans)
一个队列+宽搜就能解决问题了