题目地址 : 

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=&problem=342&mosmsg=Submission+received+with+ID+13517947

好久没有刷题了 感觉题目比较简单 锻炼思维的严谨性 看来刷题还是很有必要的

贴上源码

  1. #include<iostream>
  2. #include<fstream>
  3. #include<cstring>
  4. #include<string>
  5. using namespace std;
  6. //Character Reverse Character Reverse Character Reverse
  7. //A A M M Y Y
  8. //B N Z 5
  9. //C O O 1 1
  10. //D P 2 S
  11. //E 3 Q 3 E
  12. //F R 4
  13. //G S 2 5 Z
  14. //H H T T 6
  15. //I I U U 7
  16. //J L V V 8 8
  17. //K W W 9
  18. //L J X X
  19. //判0与o的时候要注意哦;
  20. char one[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789";
  21. char two[] = "A 3 HIL JM O 2TUVWXY51SE Z 8 ";
  22. char char_mirror[26]=
  23. {
  24. 'A','*','*','*','3','*','*','H','I','L','*','J','M',
  25. '*','O','*','*','R','2','T','U','V','W','X','Y','5'
  26. };
  27. char num_mirror[10]={'0','1','S','E','*','Z','*','*','8','*'};
  28. int check_huiwen(char * str)
  29. {
  30. int len = strlen(str);
  31. for (int i = 0; i < len/2; i++)
  32. {
  33. if (str[i] == '0' && str[len-i-1] == 'O' || str[i] == 'O' && str[len-i-1] == '0')
  34. {
  35. continue;
  36. }
  37. if (str[len-i-1] != str[i])
  38. return -1;
  39. }
  40. return 0;
  41. }
  42.  
  43. int check_mirror(char * str)
  44. {
  45. int len = strlen(str);
  46. for (int i = 0; i < len/2+1; i++)
  47. {
  48. 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])
  49. {
  50. continue;
  51. }
  52. else
  53. {
  54. if (str[i] == '0' && str[len - 1 - i] == 'O' || str[i] == 'O' && str[len - 1 - i] == '0')
  55. continue;
  56. return -1;
  57. }
  58.  
  59. }
  60. return 0;
  61. }
  62. int main()
  63. {
  64. #ifndef ONLINE_JUDGE
  65. fstream cin("D://code//acm//txt//4.txt");
  66. #endif
  67. char str[25];
  68. while (cin>>str)
  69. {
  70. int is_huiwen = 0;
  71. int is_mirror = 0;
  72. if ( check_huiwen(str) == 0 )
  73. {
  74. is_huiwen = 1;
  75. }
  76. if ( check_mirror(str) == 0 )
  77. {
  78. is_mirror = 1;
  79. }
  80. if (is_huiwen && is_mirror )
  81. {
  82. cout<<str<<" -- is a mirrored palindrome."<<endl<<endl;
  83. }
  84. else if (is_huiwen && ! is_mirror)
  85. {
  86. cout<<str<<" -- is a regular palindrome."<<endl<<endl;
  87. }
  88. else if (is_mirror && ! is_huiwen)
  89. {
  90. cout<<str<<" -- is a mirrored string."<<endl<<endl;
  91. }
  92. else if (!is_huiwen && ! is_mirror)
  93. {
  94. cout<<str<<" -- is not a palindrome."<<endl<<endl;
  95. }
  96.  
  97. }
  98. return 0;
  99. }

这道题目不难却刷了很久

原因:

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结题报告的更多相关文章

  1. 《基于Arm实验箱的国密算法应用》课程设计 结题报告

    <基于Arm实验箱的国密算法应用>课程设计 结题报告 小组成员姓名:20155206赵飞 20155220吴思其 20155234昝昕明 指导教师:娄嘉鹏 设计方案 题目要求:基于Arm实 ...

  2. 《基于Cortex-M4的ucOS-III的应用》课程设计 结题报告

    <基于Cortex-M4的ucOS-III的应用>课程设计 结题报告 小组成员姓名:20155211 解雪莹 20155217 杨笛 20155227 辜彦霖 指导教师:娄嘉鹏 一.设计方 ...

  3. 2013山东省ICPC结题报告

    A.Rescue The Princess 已知一个等边三角形的两个顶点A.B,求第三个顶点C,A.B.C成逆时针方向. 常规的解题思路就是用已知的两个点列出x,y方程,但这样求出方程的解的表达式比较 ...

  4. [置顶] 白话最小边覆盖总结--附加 hdu1151结题报告

    刚开始看到这个题目的时候就觉得想法很明了,就是不知道如何去匹配... 去网上看了不少人的解题报告,但是对于刚接触“最小边覆盖”的我来说....还是很困难滴....于是自己又开始一如以往学习“最大独立集 ...

  5. hdu1281结题报告

    哎哎...自己刚刚一看到这个题目居然.....什么都想不到...看了一下别人的解题报告说最大匹配...于是就自己开始构思啦... 对于这个棋盘,有K个可以放棋子的位置....那么 首先我们开始可以求出 ...

  6. 有向图强连通分支的Tarjan算法讲解 + HDU 1269 连通图 Tarjan 结题报告

    题目很简单就拿着这道题简单说说 有向图强连通分支的Tarjan算法 有向图强连通分支的Tarjan算法伪代码如下:void Tarjan(u) {dfn[u]=low[u]=++index//进行DF ...

  7. 2016noipday1t1玩具迷题结题报告

    经常读这个代码有益于比赛时想起一些思路.... day1t1,洛谷dalao称之为水题...??然后我去年还是没拿到分,就这个,我还就写了40%的数据,AC到40,然而这不是关键,注释了freopen ...

  8. 2017 五一 清北学堂 Day1模拟考试结题报告

    预计分数:100+50+50 实际分数:5+50+100 =.= 多重背包 (backpack.cpp/c/pas) (1s/256M) 题目描述 提供一个背包,它最多能负载重量为W的物品. 现在给出 ...

  9. 结题报告:luogu P2014

    题目链接:P2014 选课 简单的树形\(dp\),借助\(dfs\)实现. 一般的树形\(dp\)数组是需要二维的,其中一维记录节点(编号或父/子节点的状态(有时三维)),另一维记录权值或计数. 重 ...

随机推荐

  1. Android(java)学习笔记85:案例拨号程序

    手机拨号程序:(只有程序代码) package cn.itcast.phone; import android.app.Activity; import android.content.Intent; ...

  2. [转]利用vertical-align:middle实现在整个页面居中

    本文转自:http://www.cnblogs.com/xueming/archive/2012/03/21/VerticalAlign.html 如果想让一个div或一张图片相对于整个页面居中,用v ...

  3. 【转】十二个移动App云测试服务盘点

    随着移动设备.操作系统版本的碎片化,测试工作对于移动开发团队而言越来越成为一个沉重的包袱,不过这也带来了商机,现在市场上有不少服务和平台提供云测试工具,可以对移动App进行自动化测试,提供测试报告和优 ...

  4. C#中泛型容器Stack<T>

    我以前都是学出c,c++,这个学期开始学c#有点不适应,在编程中遇到些问题,所以自己在网上查了些资料,翻了一下书,写一些总结. 关于c#中Stack<T>泛型容器: <1>st ...

  5. 通过Jquery中Ajax获取json文件数据

    1. JSON(JavaScript Object Notation): javaScript对象表示法: 是存储和交换文本信息的语法,比xml更小,更快,更易解析. 2. JSON基本书写格式 : ...

  6. secureFX中出现中文乱码修改方法

    1. 找到SecureFX配置文件夹(选项--全局选项,常规下的配置文件夹),比如:D:\Program files\SecureCRT\DATA:2. 在配置文件夹下的Sessions子目录中,找到 ...

  7. ms mpi error: unable to allocate launching block

    问题描述: 在VS 2015中使用Microsoft MPI(ms mpi)构建控制台应用,使用" mpiexec -n 4 myprog.exe"运行时退出并提示"un ...

  8. html5 canvas 圆形抽奖的实例

    年底没啥,抽空学习了canvas,写了个html5抽奖的代码,造了个轮子,有用的童鞋可以拿走. 其中,canvas.onclick触发抽奖行为,概率可以在core.lottery()函数上添加,美化也 ...

  9. 译:Spring框架参考文档之IoC容器(未完成)

    6. IoC容器 6.1 Spring IoC容器和bean介绍 这一章节介绍了Spring框架的控制反转(IoC)实现的原理.IoC也被称作依赖注入(DI).It is a process wher ...

  10. CodeSmith Template Model Output

    背景:上学那会儿就接触CodeSmith,是一款非常优秀的代码自动生成工具.以前写过好些基本模版,可惜早不知道扔到哪儿去了,如今只能重新开始,把它捡回来,加油. 效果:将数据库 DataBase 应用 ...