using namespace std;
//动态规划之区间DP
int dp[1000][1000];
int main()
{
string str;
getline(cin,str);
int num=str.size(),temp=1;
memset(dp,0,sizeof(dp));
for(int i=0;i<num;i++){
dp[i][i]=1;
if(i<num-1){
if(str[i]==str[i+1]){
dp[i][i+1]=1;
temp=2;
}
}
}
//状态转移方程
for(int j=3;j<=num;j++)
for(int i=0;i+j-1<num;i++){
int m=i+j-1;
if(str[i]==str[m]&&dp[i+1][m-1]==1){
dp[i][m]=1;
temp=j;
}
}
cout<<temp<<endl;
return 0;
}

京公网安备 11010502036488号