题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805446102073344
【分析】
题意:求最长对称(回文)串的长度
思路:枚举回文串的中间位置i,然后不断的往外扩展,直到有字符不同。
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
getline(cin,s);
int len=s.length();
int maxl=0;int x=0,y=0;
for(int i=0;i<len;i++)
{
for(int j=0;i-j>=0&&i+j<len;j++)
{
if(s[i-j]!=s[i+j])break;
if(j*2+1>maxl)
{
maxl=2*j+1;
// x=i-j;y=i+j;
}
}
for(int j=0;i-j>=0&&i+j+1<len;j++)
{
if(s[i-j]!=s[i+j+1])break;
if(j*2+2>maxl)
{
maxl=j*2+2;
//x=i-j;y=i+j+1;
}
}
}
// cout<<x<<","<<y<<endl;
cout<<maxl<<endl;
}