uva401 - Palindromes结题报告
题目地址 :
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=&problem=342&mosmsg=Submission+received+with+ID+13517947
好久没有刷题了 感觉题目比较简单 锻炼思维的严谨性 看来刷题还是很有必要的
贴上源码
- #include<iostream>
- #include<fstream>
- #include<cstring>
- #include<string>
- using namespace std;
- //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
- //判0与o的时候要注意哦;
- char one[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789";
- char two[] = "A 3 HIL JM O 2TUVWXY51SE Z 8 ";
- char char_mirror[26]=
- {
- 'A','*','*','*','3','*','*','H','I','L','*','J','M',
- '*','O','*','*','R','2','T','U','V','W','X','Y','5'
- };
- char num_mirror[10]={'0','1','S','E','*','Z','*','*','8','*'};
- int check_huiwen(char * str)
- {
- int len = strlen(str);
- for (int i = 0; i < len/2; i++)
- {
- if (str[i] == '0' && str[len-i-1] == 'O' || str[i] == 'O' && str[len-i-1] == '0')
- {
- continue;
- }
- if (str[len-i-1] != str[i])
- return -1;
- }
- return 0;
- }
- int check_mirror(char * str)
- {
- int len = strlen(str);
- for (int i = 0; i < len/2+1; i++)
- {
- if (isalpha(str[i]) && str[len-i-1] == char_mirror[str[i]-'A'] || isdigit(str[i]) && num_mirror[str[i]-'0'] == str[len-i-1])
- {
- continue;
- }
- else
- {
- if (str[i] == '0' && str[len - 1 - i] == 'O' || str[i] == 'O' && str[len - 1 - i] == '0')
- continue;
- return -1;
- }
- }
- return 0;
- }
- int main()
- {
- #ifndef ONLINE_JUDGE
- fstream cin("D://code//acm//txt//4.txt");
- #endif
- char str[25];
- while (cin>>str)
- {
- int is_huiwen = 0;
- int is_mirror = 0;
- if ( check_huiwen(str) == 0 )
- {
- is_huiwen = 1;
- }
- if ( check_mirror(str) == 0 )
- {
- is_mirror = 1;
- }
- if (is_huiwen && is_mirror )
- {
- cout<<str<<" -- is a mirrored palindrome."<<endl<<endl;
- }
- else if (is_huiwen && ! is_mirror)
- {
- cout<<str<<" -- is a regular palindrome."<<endl<<endl;
- }
- else if (is_mirror && ! is_huiwen)
- {
- cout<<str<<" -- is a mirrored string."<<endl<<endl;
- }
- else if (!is_huiwen && ! is_mirror)
- {
- cout<<str<<" -- is not a palindrome."<<endl<<endl;
- }
- }
- return 0;
- }
这道题目不难却刷了很久
原因:
1.样例超过去之后 每一行都多复制了一些空格,以后注意
2.check_mirror函数for循环的终止条件i<len/2+1,中间点容易被忽视,这个也可以看作边界条件,以后注意
3.为什么会出现第二个问题呢 因为在写check_huiwen时 就写的 i<len/2 就顺手抄了过来 不多思考 两个问题还是不一样的 细节没把握好,以后参考以前的代码时一定注意边界条件
4.isdigit函数没有想到;
5.#ifndef ONLINE_JUDGE #endif
6.
uva401 - Palindromes结题报告的更多相关文章
- 《基于Arm实验箱的国密算法应用》课程设计 结题报告
<基于Arm实验箱的国密算法应用>课程设计 结题报告 小组成员姓名:20155206赵飞 20155220吴思其 20155234昝昕明 指导教师:娄嘉鹏 设计方案 题目要求:基于Arm实 ...
- 《基于Cortex-M4的ucOS-III的应用》课程设计 结题报告
<基于Cortex-M4的ucOS-III的应用>课程设计 结题报告 小组成员姓名:20155211 解雪莹 20155217 杨笛 20155227 辜彦霖 指导教师:娄嘉鹏 一.设计方 ...
- 2013山东省ICPC结题报告
A.Rescue The Princess 已知一个等边三角形的两个顶点A.B,求第三个顶点C,A.B.C成逆时针方向. 常规的解题思路就是用已知的两个点列出x,y方程,但这样求出方程的解的表达式比较 ...
- [置顶] 白话最小边覆盖总结--附加 hdu1151结题报告
刚开始看到这个题目的时候就觉得想法很明了,就是不知道如何去匹配... 去网上看了不少人的解题报告,但是对于刚接触“最小边覆盖”的我来说....还是很困难滴....于是自己又开始一如以往学习“最大独立集 ...
- hdu1281结题报告
哎哎...自己刚刚一看到这个题目居然.....什么都想不到...看了一下别人的解题报告说最大匹配...于是就自己开始构思啦... 对于这个棋盘,有K个可以放棋子的位置....那么 首先我们开始可以求出 ...
- 有向图强连通分支的Tarjan算法讲解 + HDU 1269 连通图 Tarjan 结题报告
题目很简单就拿着这道题简单说说 有向图强连通分支的Tarjan算法 有向图强连通分支的Tarjan算法伪代码如下:void Tarjan(u) {dfn[u]=low[u]=++index//进行DF ...
- 2016noipday1t1玩具迷题结题报告
经常读这个代码有益于比赛时想起一些思路.... day1t1,洛谷dalao称之为水题...??然后我去年还是没拿到分,就这个,我还就写了40%的数据,AC到40,然而这不是关键,注释了freopen ...
- 2017 五一 清北学堂 Day1模拟考试结题报告
预计分数:100+50+50 实际分数:5+50+100 =.= 多重背包 (backpack.cpp/c/pas) (1s/256M) 题目描述 提供一个背包,它最多能负载重量为W的物品. 现在给出 ...
- 结题报告:luogu P2014
题目链接:P2014 选课 简单的树形\(dp\),借助\(dfs\)实现. 一般的树形\(dp\)数组是需要二维的,其中一维记录节点(编号或父/子节点的状态(有时三维)),另一维记录权值或计数. 重 ...
随机推荐
- Android(java)学习笔记85:案例拨号程序
手机拨号程序:(只有程序代码) package cn.itcast.phone; import android.app.Activity; import android.content.Intent; ...
- [转]利用vertical-align:middle实现在整个页面居中
本文转自:http://www.cnblogs.com/xueming/archive/2012/03/21/VerticalAlign.html 如果想让一个div或一张图片相对于整个页面居中,用v ...
- 【转】十二个移动App云测试服务盘点
随着移动设备.操作系统版本的碎片化,测试工作对于移动开发团队而言越来越成为一个沉重的包袱,不过这也带来了商机,现在市场上有不少服务和平台提供云测试工具,可以对移动App进行自动化测试,提供测试报告和优 ...
- C#中泛型容器Stack<T>
我以前都是学出c,c++,这个学期开始学c#有点不适应,在编程中遇到些问题,所以自己在网上查了些资料,翻了一下书,写一些总结. 关于c#中Stack<T>泛型容器: <1>st ...
- 通过Jquery中Ajax获取json文件数据
1. JSON(JavaScript Object Notation): javaScript对象表示法: 是存储和交换文本信息的语法,比xml更小,更快,更易解析. 2. JSON基本书写格式 : ...
- secureFX中出现中文乱码修改方法
1. 找到SecureFX配置文件夹(选项--全局选项,常规下的配置文件夹),比如:D:\Program files\SecureCRT\DATA:2. 在配置文件夹下的Sessions子目录中,找到 ...
- ms mpi error: unable to allocate launching block
问题描述: 在VS 2015中使用Microsoft MPI(ms mpi)构建控制台应用,使用" mpiexec -n 4 myprog.exe"运行时退出并提示"un ...
- html5 canvas 圆形抽奖的实例
年底没啥,抽空学习了canvas,写了个html5抽奖的代码,造了个轮子,有用的童鞋可以拿走. 其中,canvas.onclick触发抽奖行为,概率可以在core.lottery()函数上添加,美化也 ...
- 译:Spring框架参考文档之IoC容器(未完成)
6. IoC容器 6.1 Spring IoC容器和bean介绍 这一章节介绍了Spring框架的控制反转(IoC)实现的原理.IoC也被称作依赖注入(DI).It is a process wher ...
- CodeSmith Template Model Output
背景:上学那会儿就接触CodeSmith,是一款非常优秀的代码自动生成工具.以前写过好些基本模版,可惜早不知道扔到哪儿去了,如今只能重新开始,把它捡回来,加油. 效果:将数据库 DataBase 应用 ...