L2-008 最长对称子串
分两种情况枚举中间点
#include <bits/stdc++.h>
using namespace std;
int main() {
string s;
getline(cin, s);
int n = s.size();
int res = 1;
for (int i = 0; i < n; i++) {
//1
int j = i - 1, k = i + 1;
if (j >= 0 && k < n) {
while (j >= 0 && k < n && s[j] == s[k]) {
j--, k++;
}
k--, j++;
res = max(k - j + 1, res);
}
//2
if (i + 1 < n && s[i] == s[i + 1]) {
j = i - 1, k = i + 2;
if (j >= 0 && k < n) {
while (j >= 0 && k < n && s[k] == s[j]) {
j--, k++;
}
}
k--, j++;
res = max(k - j + 1, res);
}
}
cout << res << "\n";
return 0;
}