401 Palindromes(回文串与镜像串)
2017-10-08 11:26
246 查看
#include<cstdio>
#include<cstring> #include<ctype.h> const char rev[] = "A 3 HIL JM O 2TUVWXY51SE Z 8 "; const char* msg[] = {"not a palindrome","a regular palindrome","a mirrored string","a mirrored palindrome"}; char mir(char c) { if(isalpha(c)) { return rev[c - 'A']; } else { return rev[c - '0' + 25]; } } int main() { char s[30]; while(~scanf("%s",s)) { int len = strlen(s); int p = 1,m = 1; for(int i = 0;i < (len+1)/2;i++) { if(s[i] != s[len-i-1]) { p = 0; } if(mir(s[i]) != s[len-i-1]) { m = 0; } } printf("%s -- is %s.\n\n",s,msg[m*2 + p]); } }
解析:
1.使用常量数组rev保存每个字符的镜像字符
2.使用字符串数组msg保存输出信息
3.设计函数mir返回每个字符的镜像字符,注意字母和数字分别处理
4.声明两个标志值p和m记录是否为回文串或镜像串
5.巧妙地利用msg[m*2 +p]简化输出
相关文章推荐
- 【白书之路】401 - Palindromes 回文串 镜像串
- Uva OJ 401 Palindromes 镜像串与回文串
- UVA 401 Palindromes 回文串和镜像串
- UVA 401 - Palindromes(判断回文串和镜像串)
- UVa 401 Palindromes (回文串与镜像串的综合判断)
- 回文串和镜像串,组合不同,下标为何*2 。 UVA 401 Palindromes 回文词
- UVa 401 Palindromes(镜像回文字符串)
- 判断一个字符串是否为回文串和镜像串(Palindromes)
- UVA - 401 Palindromes (回文串)
- uva401 Palindromes(回文串判断 水题)
- UVa 401 Palindromes(镜像回文字符串)
- Uva 401 Palindromes
- C++ 算法竞赛入门经典 回文串,镜像串问题
- UVa 401 - Palindromes
- UVA 401-- Palindromes
- uva 401 Palindromes
- UVa - 401 - Palindromes
- UVa 401 - Palindromes
- UVa 401 - Palindromes(回文词)
- 回文词(401 - Palindromes)