解题思路:
遍历字符串的每个字符,把其当成一个中心字符,并向左右两端进行延伸,判断延伸的字符是否相等。
分为两种情况:奇数字符串和偶数字符串
**奇数字符串:**每次循环,初始化ans=1,判定字符下标x为i-1,y为i+1
**偶数字符串:**每次循环,初始化ans=0,判定字符下标x为i,y为i+1
代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
char str[1010];
fgets(str,1010,stdin);
int len=strlen(str);
int maxi=1;
int ans=0;
int x,y;
for(int i=0;i<len-1;i++) //Ææ
{
ans=0;
x=i;
y=i+1;
while(str[x]==str[y]&&x>=0&&y<len)
{
x--;
y++;
ans+=2;
}
maxi=max(maxi,ans);
}
for(int i=1;i<len-1;i++) //ż
{
ans=1;
x=i-1;
y=i+1;
while(str[x]==str[y]&&x>=0&&y<len)
{
x--;
y++;
ans+=2;
}
maxi=max(maxi,ans);
}
printf("%d\n",maxi);
return 0;
}