思路
动态规划
代码
#include<bits/stdc++.h>
using namespace std;
const int Max=1001;
int dp[Max][Max];
int main()
{
string s;
getline(cin,s);
int ans=0;
int len=s.size();
for(int i=0;i<len;i++)
{
for(int j=0;j<=i;j++)
{
dp[i][j]=(s[i]==s[j]&&(i-j<2||dp[i-1][j+1]));
if(dp[i][j])
ans=max(ans,i-j+1);
}
}
cout<<ans<<endl;
return 0;
}