#include<iostream>
#include <string >
using namespace std;
int maxMiddle(char a[] , int index)
{
int length = 1; //最長的子字元串長度
int j = 1; //前後移動的指針
int len=(int)strlen(a);
while ((a[index - j] == a[index + j]) && (index - j) >= 0 && (index + j)<len)
{
length += 2;
j++;
}
return length;
}
int maxMirror(char a[] ,int index)
{
int len=(int)strlen(a);
int length = 0; //最長的子字元串長度
int j = 0; //前後移動的指針
while ((a[index - j] == a[index + j + 1]) && (index - j) >= 0 &&(index + j + 1)<len)
{
length += 2;
j++;
}
return length;
}
int jieguo(char a[])
{
int len=(int)strlen(a);
if (len == 0)
return 0;
int maxLength = 0;
for (int i = 0; i < len; i++)
{
int temp =0;
int length1 = maxMiddle(a, i);
int length2 = maxMirror(a, i);
temp = (length1 > length2) ? length1 : length2;
if (temp > maxLength)
maxLength = temp;
}
return maxLength;
}
int main()
{
char a[100];
cout<<"請輸入字元串:"<<endl;
scanf("%s",a);
int m=jieguo(a);
cout<<"最大字元串長度是:"<<m<<endl;
system("pause");
return 0;
}