判断回文
Time Limit: 1000MS | Memory Limit: 65535KB |
Submissions: 1422 | Accepted: 709 |
Description
一个字符串将其所有字符倒过来后和原来一样就称它是回文。如121是回文,abA不是回文。 你的任务就是对于输入的字符串判断是否是回文。
Input第一行:测试数据组数N(1=接下来N行:
每行一个字符串(只有数字和字母(区分大小写),且字符串大小小于100). Output输出只有一行,即是否是回文。是输出“YES”,不是输出“NO”;
Sample Input
3A1BB1A5454215644484412
Sample Output
YESNONO 本题我用了两种方法,第一种方法(用//去掉的那些)有点问题,但是不知道问题出在哪里。 第二种方法已经测试通过。
#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;}