#include <bits/stdc++.h> using namespace std; const int N=510; int dp[N][N];//左端点和右端点 int main() { string s; while(getline(cin,s)) { if(s.size()==1) { cout<<1<<endl; continue; } for(int i=0;i<s.size()-1;i++) { dp[i][i]=1; if(s[i]==s[i+1]) dp[i][i+1]=2; } int res=1; for(int i=s.size()-1;i>=0;i--)做指针从右往左移 { for(int j=i;j<s.size();j++) { if(j-i>1&&s[i]==s[j]&&dp[i+1][j-1]) dp[i][j]=dp[i+1][j-1]+2; res=max(res,dp[i][j]); } } cout<<res<<endl; } }