using namespace std;
int main()
{
int maxn=1;
string a;
cin>>a;
for(int i=0;i<a.length()-1;i++)
{
int l=i,r=a.rfind(a[i]),temp=0;
while(l<r)
{
if(a[l]==a[r])
{
temp+=2;
l++;r--;
}
else {
l=i;
r=a.rfind(a[i],r-1);
temp=0;
}
}
if(l==r&&temp) temp++;
maxn=max(maxn,temp);
}
cout<<maxn<<endl;
}
跟中心扩展法类似,也是遍历每一个字符,但是每一个字母不作为中心,而是作为开头,在while循环中引入双指针,用rfind简单递归一下,