一:暴力枚举可过
#include <bits/stdc++.h>
using namespace std;
const int N = 1010;
char str[N];
bool isOK(int l, int r)
{
while (l < r)
{
if (str[l] != str[r])
{
return false;
}
l++;
r--;
}
return true;
}
int main(void)
{
fgets(str, N, stdin);
int len = strlen(str);
int maxLen = 0;
for (int i = 0; i < len; i++)
{
for (int j = len - 1; j >= i; j--)
{
if (j - i + 1 < maxLen)
break;//长度不可能比当前最长长度长的时候,结束该次循环就好
if (isOK(i, j))
{
int l = j - i + 1;
if (l > maxLen)
{
maxLen = l;
}
}
}
}
cout << maxLen << endl;
return 0;
}
二:DP法
暂时不写,以后补,希望我记得