直接暴力三层循环解的,想着应该有更好的解法,但是试了好几次没有做出来,就暂时先这样做了,到后面的时候再想想能不能用其他解法解决

#include<iostream>
#include<algorithm> 
using namespace std;
string str;
int main(){
    while(cin>>str){
        int maxn=0,flag=0,s=0,e=0;
        //暴力循环确定左右边界 
        for(int i=0;i<str.length();i++){
            for(int j=str.length()-1;j>i;j--){
                flag=0;
                int l,r;
                //判断这个段上是不是回文 
                for(l=i,r=j;l<=(i+j)/2;l++,r--){ 
                    if(str[l]!=str[r]){
                        flag=1;
                        break;
                    }
                }
                //如果这段上是回文 
                //那么再比这个短的就不用再看了,重新遍历下一次 
                if(flag==0){
                    maxn=max(maxn,(j-i+1));
                    break; 
                }
            }
        }
        cout<<maxn<<endl;
    }
    return 0;
}