Problem Description

“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。请写一个程序判断读入的字符串是否是“回文”。

 

Input

输入包含多个测试实例,输入数据的第一行是一个正整数n,表示测试实例的个数,后面紧跟着是n个字符串。

 

Output

如果一个字符串是回文串,则输出"yes",否则输出"no".

 

Sample Input

4 level

abcde

noon

haha

 

Sample Output

yes

no

yes

no

代码:

#include<stdio.h>
#include<string.h>
int main()
{
	char a[1010];
	int n,start,end,len,flag;
	scanf("%d",&n);
	while(n--)
	{
		flag=0;
		scanf("%s",a);
		start = 0;
		end = strlen(a)- 1;
		while(start < end)
		{
			if(a[start]!=a[end])
			{
				flag=1;
				break;
			}
			start++;
			end--;
		}
		if(flag==0)
			printf("yes\n");
		else
			printf("no\n");
	}
	return 0;
}

第二种是利用字符串函数写的。

代码:

#include<stdio.h>
#include<string.h>
int main()
{
	int n;
	char a[1100],b[1100];
	scanf("%d",&n);
	getchar();
	while(n--)
	{
	
		gets(a);
		strcpy(b,a);
		strrev(b);
		if(strcmp(a,b)==0)
			printf("yes\n");
		else
			printf("no\n");
	}
	return 0;
}