蓝兔子现在有一个字符串,如果一个字符串从左向右看和从右向左看是一样的,则称为回文串。请编写程序,帮助蓝兔子判断输入的字符串是否是回文串。
#include<stdio.h>
#include<string.h>
int main()
{
int n,i;
char a[11100];
scanf("%d",&n);
for(i=0;i<n;i++)
{
int flag=1;
scanf("%s",a);
int m=strlen(a);
//printf("m=%d\n",m);
if(m%2==1)
{
int j=m/2;
for(int k=m/2;k>=0;k--)
{
if(a[k]!=a[j++])
{
printf("NO\n");
flag=0;
break;
}
}
if(j==m&&flag) printf("YES\n");
}
else{
int j3=m/2;
for(int j2=m/2-1;j2>=0;j2--)
{
if(a[j2]!=a[j3++])
{
printf("NO\n");
flag=0;
break;
}
}
if(j3==m&&flag) printf("YES\n");
}
}
}
因为可能涉及到abc,也就是刚好卡到我们的判断条件,这个时候需要一个flag.