C++ 最简洁的想法之一,以找对称轴开始
1,两种情况:1,以两个相同字符为对称轴 2,以一个相同字符为对称轴
2,以两个相同字符为扩散范围寻找
3,以一个相同字符为对称轴寻找
4,记录最大值

#include <iostream>
#include<string>
using namespace std;
int main()
{
    string str;
    int max=0,i,t;
    int kuo;//扩散对称范围用
    while(cin>>str)
    {
        for(i=0;i<str.size()-1;i++)
        {
            if(str[i]==str[i+1])//以两个相同字符为对称轴(偶数个以上与两个都一样)
            {
                t=2;
                kuo=1;
                for(int j=0;j<str.size()/2;j++)
                {            
                   if((i-kuo>=0)&&(i+kuo+1)<str.size())//扩散再字符串之内,防止越界
                   {
                       if(i>=1&&str[i-kuo]==str[i+kuo+1])//对称判断
                       {
                         t+=2;
                         kuo++;   //扩散对称范围
                       }
                       else
                       {
                          break;
                       }
                   }
                }
                if(t>max)
                {
                    max=t;
                }          
            }
            else//以一个相同字符为对称轴(奇数个以上与两个都一样)
            {
                t=1;
                kuo=1;
                for(int j=0;j<str.size()/2;j++)
                {
                    if((i-kuo>=0)&&(i+kuo+1)<str.size())//扩散再字符串之内,防止越界
                    {
                        if(i>=1&&str[i-kuo]==str[i+kuo])//对称判断
                        {
                             t+=2;
                             kuo++;   //扩散对称范围
                        }
                        else
                        {
                            break;
                        }
                    }
                }
                if(t>max)
                {
                    max=t;
                } 
            }     
        }
        cout<<max<<endl;
        max=0;//要清零
    }
    return 0;   
}