for (int i=1;i<=cnt;i++) { if (i<=r) dp[i]=min(dp[2*mid-i],r-i+1); while (s[i+dp[i]]==s[i-dp[i]]) dp[i]++; if (i+dp[i]>r) r=i+dp[i],mid=i; ans=max(ans,dp[i]); }
请问一下,这里的(i+dp[i]>r)改成(i+dp[i]>=r)就WA了好几个点,请问这是为什么呢?
QAQ QWQ