UVa:401 - Palindromes
2014-04-19 09:33
344 查看
这是回归以后发表的第一道UVa的题目,略感吃力,望再接再厉!(貌似以前做过了)
此题要判断输入的字符串的性质,性质一:该串既不是回文串也不是镜像串(即将该串反转过来,并将每个字符用相应的反转字符后,仍和原串一样),性质二:该串是回文串但不是镜像串,性质三:该串是镜像串但不是回文串,性质四:该串既是回文串又是镜像串。
思路清晰简单,但刚开是我一直在思考数字'0'和字母‘O’的问题(其实此问题可以忽略,被题目中的这句话“Note that O (zero) and 0 (the letter) are considered the same character and thereforeONLY the letter "0" is a valid character.” 给误导了),从而忽略了字符‘B’这样的字符也是有反转字符的,它们的反转字符是空格或者也可以是其他的无效字符。WA了好多次的说~~~
正确代码如下:
--------------------------------------------------------------------------------------------
Keep It Simple,Stupid!
--------------------------------------------------------------------------------------------
此题要判断输入的字符串的性质,性质一:该串既不是回文串也不是镜像串(即将该串反转过来,并将每个字符用相应的反转字符后,仍和原串一样),性质二:该串是回文串但不是镜像串,性质三:该串是镜像串但不是回文串,性质四:该串既是回文串又是镜像串。
思路清晰简单,但刚开是我一直在思考数字'0'和字母‘O’的问题(其实此问题可以忽略,被题目中的这句话“Note that O (zero) and 0 (the letter) are considered the same character and thereforeONLY the letter "0" is a valid character.” 给误导了),从而忽略了字符‘B’这样的字符也是有反转字符的,它们的反转字符是空格或者也可以是其他的无效字符。WA了好多次的说~~~
正确代码如下:
#include<string.h> #include<stdio.h> const int MAXS=1000000; char s[MAXS]; char ch[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789"; char re[]="A 3 HIL JM O 2TUVWXY51SE Z 8 "; int main() { while(scanf("%s",s)!=EOF){ int p=1,m=1; int leng=strlen(s); for(int i=0;i<leng/2;++i) if(s[i]!=s[leng-i-1]){ p=0; break;} for(int i=0;i<leng;++i){ char r; if(s[leng-i-1]>=65&&s[leng-i-1]<=90) r=re[s[leng-i-1]-'A']; else r=re[s[leng-i-1]-'0'+25]; if(s[i]!=r){ m=0; break;} } if(!p&&!m) printf("%s -- is not a palindrome.\n\n",s); if(p&&!m) printf("%s -- is a regular palindrome.\n\n",s); if(!p&&m) printf("%s -- is a mirrored string.\n\n",s); if(p&&m) printf("%s -- is a mirrored palindrome.\n\n",s); } return 0; }
--------------------------------------------------------------------------------------------
Keep It Simple,Stupid!
--------------------------------------------------------------------------------------------
相关文章推荐
- UVa-401-Palindromes
- UVa 401 Palindromes (回文串与镜像串的综合判断)
- UVa401_Palindromes(小白书字符串专题)
- UVa 401 Palindromes
- UVA 401-Palindromes
- UVa 401 - Palindromes
- UVa 401 Palindromes 回文词
- UVA 401(p48)----Palindromes
- UVa-401-Palindromes
- (UVA)401 - Palindromes
- Palindromes UVA - 401
- UVa 401 - Palindromes -AC
- uva 401 Palindromes(字符串处理)
- uva 401 Palindromes
- UVa 401 Palindromes
- UVa 401 - Palindromes
- UVA 题目401 - Palindromes(回文词)
- UVa-401 Palindromes
- UVA - 401 Palindromes
- UVA 401 - Palindromes(判断回文串和镜像串)