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简单递归一下,