UVa 401 Palindromes(简单字符串)
2016-06-23 15:28
148 查看
简单的判断是否是回文串、镜像串,然后自己写的真费劲,没逃掉刘汝佳的书,这里的代码很有技巧性,特别值得学习,额,其实他书上的代码都很精简
这个要用一维数组存储
题意:
思路:
Character | Reverse | Character | Reverse | Character | Reverse |
A | A | M | M | Y | Y |
B | N | Z | 5 | ||
C | O | O | 1 | 1 | |
D | P | 2 | S | ||
E | 3 | Q | 3 | E | |
F | R | 4 | |||
G | S | 2 | 5 | Z | |
H | H | T | T | 6 | |
I | I | U | U | 7 | |
J | L | V | V | 8 | 8 |
K | W | W | 9 | ||
L | J | X | X |
题意:
思路:
/* UVa 401 Palindromes 题意:输入一个字符串,判断其是否是回文串或者镜像串 输入的字符可能会有不合法的镜像字符,但是保证没有0, 其他所有字母和9个数字 思路:没逃掉刘汝佳的书,将镜像的字符存在一个数组里面, 将输出的字符串存在一个数组里面,不过确实挺好用,然后就是 简单的首位循环判断了 */ #include<iostream> #include<cstdio> #include<cstring> #include<ctype.h> using namespace std; char rev[40]="A 3 HIL JM O 2TUVWXY51SE Z 8 "; char judge(char c)//相应的镜像符号 { if(isalpha(c))//如果是字母 return rev[c-'A']; return rev[c-'0'+25];//如果是数字,+25字母 } int main() { char output[4][30]={"is not a palindrome.","is a regular palindrome.", "is a mirrored string.","is a mirrored palindrome."};//巧妙,省事 char str[25]; while(scanf("%s",str)!=EOF) { int len=strlen(str); int flag1=1,flag2=1; for(int i=0;i<(len+1)/2;i++) { if(str[i]!=str[len-i-1])//是否回文 flag1=0; if(judge(str[i])!=str[len-i-1])//是否镜像 flag2=0; } //竟然注释掉cout<<flag1<<" "<<flag2<<endl; printf("%s -- %s\n\n",str,output[flag2*2+flag1]); } return 0; } /* NOTAPALINDROME ISAPALINILAPASI 2A3MEAS ATOYOTA */
相关文章推荐
- Flink流计算编程--在双流中体会joinedStream与coGroupedStream
- 小米范工具系列之六:小米范 web查找器2.x版本发布
- Cookie , Session ,Session 劫持简单总结
- 善用GIMP(Linux下的Photoshop),图像处理轻松又自由
- Python 从基础------进阶------算法 系列
- android是32-bit系统还是64-bit系统
- codeforces679C Bear and Square Grid(dfs优化)
- Java Ping网站
- Lync 2013 的配置与使用
- Swift - 自定义函数规则说明
- 透过面试题,洞察Hbase 核心知识点
- Java性能优化指南系列(一):概述和性能测试方法
- Rxjava(2.操作符)
- _tmain()和main()的区别
- 算法杂货铺——分类算法之决策树(Decision tree)
- idea 清除svn登陆权限信息
- servlet多线程问题
- Java RandomAccessFile用法
- MP 新版本 [3 mysql sequelize 数据库到前端页面渲染]
- HTM5:拖放