'''
如果某一段位置 [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)
一个队列+宽搜就能解决问题了

京公网安备 11010502036488号