中心扩散的,遇到回文子串就中心扩散,挺简单的 #include<iostream> #include<string> using namespace std; int hui(string& a, int i, int j) { int fault = 0; while (i >= 0 && j < a.size()&&a[i]==a[j]) { fault+=2; i--; j++; } return fault; } int main() { string a; cin >> a; int fault = 0; cout << a << endl; for (int i = 0; i < a.size(); i++) { int tmp1 = hui(a, i, i); int tmp2 = hui(a, i, i + 1); fault = max(fault, max(tmp1, tmp2)); } cout << fault << endl; return 0; }