Problem Description
“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。请写一个程序判断读入的字符串是否是“回文”。
Input
输入包含多个测试实例,输入数据的第一行是一个正整数n,表示测试实例的个数,后面紧跟着是n个字符串。
Output
如果一个字符串是回文串,则输出"yes",否则输出"no".
Sample Input
4
level
abcde
noon
haha
Sample Output
yes
no
yes
no
注意:第一种方法不知道为什么输出结果不对,但第二种方法可以,而且简单些
#include<string.h>
#include<stdio.h>
int main()
{
static char st[200],st1[200];
int n,i,j,k,count;
while(~scanf("%d",&n))
{
for(i=0;i<n;i++)
{
k=0;getchar();count=0;
gets(st);
for(j=strlen(st)-1;j>=0;j--)
st1[k++]=st[j];
st1[k]='\0';
for(j=0;j<strlen(st);j++)
{
if(st[j]==st1[j])
{
count++;
continue;
}
else
break;
}
if(count==strlen(st))
printf("yes\n");
else
printf("no\n");
memset(st1,0,sizeof st1);
}
}
return 0;
}
#include<string.h>
#include<stdio.h>
int main()
{
char st[100];
int n,i,j,count;
while(~scanf("%d",&n))
{
getchar();
while(n--)
{
count=0;
gets(st);
for(i=0,j=strlen(st)-1;i<strlen(st)/2;i++,j--)
{
if(st[i]==st[j])
count++;
}
if(count==strlen(st)/2)
printf("yes\n");
else
printf("no\n");
}
}
return 0;
}