HDU 2163 Palindromes

来源:互联网 发布:知识产权 淘宝 编辑:程序博客网 时间:2024/04/26 08:31

Palindromes

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2949    Accepted Submission(s): 1723


Problem Description
Write a program to determine whether a word is a palindrome. A palindrome is a sequence of characters that is identical to the string when the characters are placed in reverse order. For example, the following strings are palindromes: “ABCCBA”, “A”, and “AMA”. The following strings are not palindromes: “HELLO”, “ABAB” and “PPA”. 
 

Input
The input file will consist of up to 100 lines, where each line contains at least 1 and at most 52 characters. Your program should stop processing the input when the input string equals “STOP”. You may assume that input file consists of exclusively uppercase letters; no lowercase letters, punctuation marks, digits, or whitespace will be included within each word. 
 

Output
A single line of output should be generated for each string. The line should include “#”, followed by the problem number, followed by a colon and a space, followed by the string “YES” or “NO”. 
 

Sample Input
ABCCBAAHELLOABABAMAABABPPASTOP
 

Sample Output
#1: YES#2: YES#3: NO#4: NO#5: YES#6: NO#7: NO
 


我想shi的心都有了,那天考试连A三次都没过,思路也没啥问题啊!事后突然发现大写的O不知怎么的被写写成小写的了。哎,不然名次就上升好几名了

2014/11/14    17:50   用字符串重新写了一遍,感觉很好


#include<stdio.h>#include<string.h>char a[60];int main(){int t,len,i,j,m=1,b,c,d;while(scanf("%s",a)!=EOF){if(!strcmp(a, "STOP")) break;printf("#%d: ",m++);b=c=d=0;len=strlen(a);if(len==1)    {printf("YES\n");continue;}t=len/2;if(len%2==0){for(i=0;i<t;i++){if(a[i]==a[len-1-i])b++;}if(b==t)  printf("YES");else    printf("NO");}else{for(i=0;i<=t;i++){if(a[i]==a[len-1-i])c++;}if(c-1==t)   printf("YES");else   printf("NO");}printf("\n");}return 0;}


用字符串函数写的。


#include<stdio.h>#include<string.h>char ch[60];int main(){int t=1;int len,i,j,flag;while(scanf("%s",ch)!=EOF){if(!strcmp(ch,"STOP")) break;flag=1;printf("#%d: ",t++);len=strlen(ch);for(i=0;i<len/2;i++){if(ch[i]!=ch[len-1-i]){flag=0;break;}}if(flag)printf("YES");elseprintf("NO");printf("\n");}return 0;} 





0 0