1.找出最大回文串的长度
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s;
cin >> s;
int startk = -1;
int endk = -1;
int number=0;
int maxnumber = -1;
for (size_t i = 0; i < s.length() - 1; i++)
{
if (s[i] == s[i + 1] && startk < 0)
{
startk = i;
}
else if ((s[i] != s[i + 1]||(i+1)==s.length()-1) && startk >= 0)
{
if ((i + 1) == s.length() - 1)
endk = i + 1;
else
endk = i;
}
else if ((i - 1) >= 0&&startk<0)
{
if (s[i - 1] == s[i + 1])
{
startk = i - 1;
endk = i + 1;
}
}
if (endk != -1&&startk!=-1)
{
number = endk - startk + 1;
while (startk >0 && endk < s.length()-1)
{
startk--;
endk++;
if (s[startk] == s[endk])
number += 2;
else
break;
}
if (number > maxnumber)
{
maxnumber = number;
}
number = 0;
startk = -1;
endk = -1;
}
}
cout << maxnumber;
return 0;
}