判断回文
Time Limit: 1000MS | Memory Limit: 65535KB |
Submissions: 1422 | Accepted: 709 |
Description
一个字符串将其所有字符倒过来后和原来一样就称它是回文。如121是回文,abA不是回文。 你的任务就是对于输入的字符串判断是否是回文。
Input第一行:测试数据组数N(1=接下来N行:
每行一个字符串(只有数字和字母(区分大小写),且字符串大小小于100).
输出只有一行,即是否是回文。是输出“YES”,不是输出“NO”;
Sample Input
3 A1BB1A 545421564 4484412
Sample Output
YES NO NO
本题我用了两种方法,第一种方法(用//去掉的那些)有点问题,但是不知道问题出在哪里。
第二种方法已经测试通过。
#include<stdio.h>
#include<string.h>
int main()
{
int n,i,j;
// char string[20];
char str[10][20];
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%s",&str[i]);
}
for(i=1;i<=n;i++)
{
int k;
int len=strlen(str[i]);
// for(j=1;j<=len;j++)
// {
// string[j]=str[i][len+1-j];
// }
// string[len+1]='\0';
// if(strcmp(string,str[i])==0)
j=len-1;
for (k=0;k<j;k++,j--)
if(str[i][j]!=str[i][k]) break;
if(j==k||j==k-1)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}