#include <iostream> #include <string> #include <vector> using namespace std; int main() { string str; cin >> str; int len = str.size(); vector<vector<int> >dp(len, vector<int>(len, 0)); //边界条件 长度为1 或者长度为2 的状态 int ans=0; for (int i = 0; i < len; ++i) { dp[i][i] = 1; if (i < len - 1) { if (str[i] == str[i + 1]) dp[i][i + 1] = 1; ans = 2; } } for (int l = 3; l <= len; ++l) { for (int i = 0; i + l - 1 < len; ++i) { int j = i + l - 1; if (str[i] == str[j]&& dp[i + 1][j - 1] == 1) { dp[i][j] = 1; ans = l; } } } cout << ans << endl; system("pause"); return 0; }