杭电OJ2029解题心得
来源:互联网 发布:淘宝延长收货可以多久 编辑:程序博客网 时间:2024/06/17 03:14
(原MyBlog)
题目描述
Problem Description
“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。请写一个程序判断读入的字符串是否是“回文”。
Input
输入包含多个测试实例,输入数据的第一行是一个正整数n,表示测试实例的个数,后面紧跟着是n个字符串。
Output
如果一个字符串是回文串,则输出”yes”,否则输出”no”.
Sample Input
4
level
abcde
noon
haha
Sample Output
yes
no
yes
no
原题链接Problem-2029
解题思路
本题就是简单的判断一个字符串从前往后读和从后往前读都是相同的字符顺序
法一、实现字符串从前往后读的序列和从后往前读的序列一一比较,就可得出答案
法二、将字符串进行折半,然后再比较,类似于方法一
法三、另外构造一个字符串,使其为当前字符串的倒序,然后比较两字符串是否相等
此题代码
此代码采用容器存储,使用reverse函数获得原字符串的倒序字符串
#include <iostream>#include <string>#include <algorithm>using namespace std;int main (){ int n; cin>>n; for(int i=0;i<n;i++){ string s; cin>>s; string s1=s; reverse(s1.begin(),s1.end()); if(s1==s) cout<<"yes"<<endl; else cout<<"no"<<endl; } return 0;}
小结
看得出来,如果使用了容器string,那么问题会简单很多,对于ACM或者其他的程序设计比赛,C++STL类库的使用会简化程序,使竞赛更加有趣(个人观点),所以对于C++选手来说,STL是必不可少的一把利剑
类似题目(回文数)
蓝桥杯基础 回文数
问题描述
1221是一个非常特殊的数,他从左边读和从右边读都是一样的,编程求出所有这样的四位十进制数。
输出格式
按从小到大的顺序输出满足条件的四位十进制
- 由于这两天蓝桥网在维护,进不了题目链接,等后期再填上空缺了,见谅见谅!
解题思路
这道题目就相对来说简单得多,直接根据题意,然后分离四位数的各位然后进行比较,就能得出答案
如果更改下题意,输入一个数,判断此数是否为回文数(回文数定义类似于回文字符串),那么就和前边的题目几乎相同了
回文数代码
#include <iostream>using namespace std;int main (){ int i; for(i=1000;i<10000;i++) { if(((int)i/1000==(i%10))&&(int((i%1000)/100)==(int(i%100)/10))) cout<<i<<" "; } return 0;}
交友栏目
更多IT相关咨询请关注微信公众号 DeepBlueTeam ,或关注QQ群 577047300(I&T)欢迎各位小伙伴的加入。
阅读全文
0 0
- 杭电OJ2029解题心得
- 【杭电oj2029】Palindromes _easy version
- 杭电oj1002解题
- 杭电1008解题报告
- 杭电1014解题报告
- 杭电1160解题报告
- 杭电1176解题报告
- 杭电2059解题报告
- 杭电HDOJ1024 解题报告
- 杭电2028解题报告
- 杭电3342解题报告
- 杭电Robberies解题报告
- 杭电1061 解题报告
- 杭电2154解题思路
- 杭电ACM1800解题报告
- 杭电1045解题报告
- 杭电1050解题报告
- 杭电2037解题报告
- 蓝桥选拔第一场(E)
- 解决Android Studio2.3导入项目在 Building gradle project info 一直卡住
- Github使用方法:如何将本地的文件夹整体上传到Github上
- 私有云落地解决方案之openstack高可用(pike版本)-集群配置
- 051:当心字符串连接的性能
- 杭电OJ2029解题心得
- Linux虚实地址转换建议
- 使用Java打印平面图形-面试题
- leetCode-Find All Duplicates in an Array
- numpy的的dtype的用法
- Java多线程-并发协作(生产者消费者模型)
- logback配置详解
- 指针和引用的区别
- php删除数组中指定值的元素的几种方法