解題思路:
遍歷字符串的每個字符,把其當成一箇中心字符,並向左右兩端進行延伸,判斷延伸的字符是否相等。
分爲兩種情況:奇數字符串和偶數字符串
**奇數字符串:**每次循環,初始化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;
}