UVa 401 Palindromes
2012-03-21 22:40 Rollen Holt 阅读(443) 评论(0) 编辑 收藏 举报题目大意:Palindrome的定义是,一个字符串从左向右和从右向左读是一样的;Mirrored string的定义是,一个字符串左右对称;Mirrored palindrome就是既palindrome又mirrored的字符串。对称的关系表题目中已给出。
#include<stdio.h> #include<string.h> const char one[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789"; const char two[]="A 3 HIL JM O 2TUVWXY51SE Z 8 "; const long len=35; bool Palindrome(const char *s) { long begin=0,end=strlen(s)-1; while(begin<=end) { if(s[begin]==s[end]) { begin++; end--; } else return false; } return true; } long pos(char ch) { for(long i=0;i<len;i++) if(one[i]==ch) return i; return len; } bool Mirror(const char *s) { long begin=0,end=strlen(s)-1; while(begin<=end) { long tmp=pos(s[begin]); if(s[end]==two[tmp]) { begin++; end--; } else return false; } return true; } int main() { char str[1000]; while(gets(str)!=0) { bool a=false,b=false; a=Palindrome(str); b=Mirror(str); if(a&&b) printf("%s -- is a mirrored palindrome.\n",str); else if(a) printf("%s -- is a regular palindrome.\n",str); else if(b) printf("%s -- is a mirrored string.\n",str); else printf("%s -- is not a palindrome.\n",str); putchar('\n'); } return 0; }
==============================================================================
本博客已经废弃,不在维护。新博客地址:http://wenchao.ren
我喜欢程序员,他们单纯、固执、容易体会到成就感;面对压力,能够挑灯夜战不眠不休;面对困难,能够迎难而上挑战自我。他
们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想“用智慧开创属于自己的事业”。我想说的是,其
实我是一个程序员
==============================================================================