题目地址 : 

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

  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)学习笔记95:Android原理揭秘系列之View、ViewGroup

    作过Android 应用开发的朋友都知道,Android的UI界面都是由View和ViewGroup及其派生类组合而成的.其中,View是所有UI组件的基类,而ViewGroup是容纳这些组件的容器, ...

  2. 包加载失败 未能正确加载包“xxx”...

    打开vs2008或者2005如果弹出一个警告对话框 包加载失败 未能正确加载包“xxx” ...... 的字样,就可以用以下方法解决. 在cmd下运行带参数的devenv.exe: "d(盘 ...

  3. AES 加解密

    // // NSData+AES.h // Smile // // Created by 蒲晓涛 on 12-11-24. // Copyright (c) 2012年 BOX. All rights ...

  4. 24小时学通Linux内核--内核探索工具类

    寒假闲下来了,可以尽情的做自己喜欢的事情,专心待在实验室里燥起来了,因为大二的时候接触过Linux,只是关于内核方面确实是不好懂,所以十天的时间里还是希望能够补充一下Linux内核相关知识,接下来继续 ...

  5. Netty线程模型

    一.Reactor模型 1.单线程模型 Reactor单线程模型,指的是所有的IO操作都在同一个NIO线程上面完成,NIO线程的职责如下: 1)作为NIO服务端,接收客户端的TCP连接: 2)作为NI ...

  6. Android 给应用定制皮肤

    Android 给应用定制皮肤 导读:皮肤也就是相关的资源文件单独放置在某个工程中,一种皮肤一个工程文件.一个工程包括N多的资源文件,多个工程间资源的关系是,文件名,资源ID等完全一样. 在实现程序功 ...

  7. 转:Nginx RTMP 功能研究

    看点: 1.    Nginx 配置信息与使用.  (支持 rtmp与HLS配置) 2.    有ffmpeg 编译与使用,    命令行方式来测试验证客户端使用. 转自:http://blog.cs ...

  8. 小技巧之a标签自动解析URL

    我们可能都知道javascript中的window.location对象用来获取当前页面的地址URL,并把浏览器重定向到新的页面.它有protocol.hostname.host.port.searc ...

  9. 关于css制作圆角

    三个阶段: 1.背景图片: 2.css2.0+标签模拟圆角: 3.css3.0圆角属性(border-radius). 1.1.背景图片--宽度固定,高度自适应圆角 为容器设置宽度 在主体的上方加一个 ...

  10. Apache配置多端口多站点

    配置httpd.conf 监听多个端口 复制代码 代码如下:# Listen: Allows you to bind Apache to specific IP addresses and/or # ...