13RE求助
查看原帖
13RE求助
703022
wuyixiang楼主2024/4/3 20:16
#include <iostream>
using namespace std;
string s,t;
int n,d[22000015],ans = 1,m;
int main()
{
    cin >> t;
    s[0] = '$',s[++n] = '#';
    m = t.size();
    for(int i = 0;i < m;i ++)s[++n] = t[i],s[++n] = '#';
    d[1] = 1;
    for(int i = 2,l = 1,r = 1;i <= n;i ++)
    {
        if(i <= r && d[r - i + l] + i <= r)d[i] = d[r - i + l];
        else if(i <= r)d[i] = r - i + 1;
        while(i - d[i] >= 1 && i + d[i] <= n && s[i - d[i]] == s[i + d[i]])d[i] ++;
        if(i + d[i] - 1 > r)r = i + d[i] - 1,l = i - d[i] + 1;
        ans = max(ans,d[i] - 1);
    }
    cout << ans ;
}

似乎删掉第10行就变成WA了,但是不懂为什么会RE

2024/4/3 20:16
加载中...