天天看點

hdu2029

**

判斷一個字元是不是回文符

**

Problem Description

“回文串”是一個正讀和反讀都一樣的字元串,比如“level”或者“noon”等等就是回文串。請寫一個程式判斷讀入的字元串是否是“回文”。

Input

輸入包含多個測試執行個體,輸入資料的第一行是一個正整數n,表示測試執行個體的個數,後面緊跟着是n個字元串。

Output

如果一個字元串是回文串,則輸出"yes",否則輸出"no".

Sample Input

4

level

abcde

noon

haha

Sample Output

yes

no

yes

no

思路:就字元數組第零個與最後一個比較,第一個與倒數第二個比較……以此類推,直到比較到中間的就可以了。

注意:不要混淆sizeof與strlen的差別,sizeof是給數組配置設定的空間的大小,strlen是數組中元素的多少。

#include <stdio.h>
#include <string.h>
void main()
{
	int n,i=0,length,count;
	char a[1000];
	while(scanf("%d%*c",&n)!=EOF)
	{
		while(n--)
		{
			count=0;
			gets(a);
			length=strlen(a);
			for(i=0;i<length/2;i++)
			{
				if(a[i]==a[length-1-i])
					count++;
				else
				{
					printf("no\n");
					break;
				}
			}
			if(count==length/2)
				printf("yes\n");
		}
	}
}