博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
401 Palindrome
阅读量:5317 次
发布时间:2019-06-14

本文共 1353 字,大约阅读时间需要 4 分钟。

这道题最初我是没理解清楚题意,我以为那些reverse栏空白的字母是省略了.后来在找到了更多的测试数据,发现了自己理解错了,重新读题= =,修改了下代码- -.弄了很久才AC

我的思路和别人有点不同的是,我是通过计算来得到在常量表中的位置

好吧= =  这道题本来该总结很多的,今天来忘记很多了.

#include
#include
#include
const int maxn = 1000; int main() {
#ifdef LOCAL freopen("input.txt", "r", stdin); #endif int state_m = 1, state_p = 1; int len; int a, x; //a字符在数组中位置,x数组中间位置 char s[maxn]; const char c[] = "A 3 HIL JM O 2TUVWXY51SE Z 89"; while(scanf("%s", s) != EOF) {
printf("%s", s); state_m = 1; state_p = 1; len = strlen(s); x = (len + 1) / 2; for(int i = 0; i < x; i++) {
a = (int)(isdigit(s[i]) ? s[i] - 23: s[i] - 65); if(s[len-1-i] == c[a]) //判断是否为mirrored {
if(s[len-1-i] != s[i]) state_p = 0; } else {
state_m = 0; if(s[len-1-i] != s[i]) state_p = 0; } } if(state_m && state_p) printf(" -- is a mirrored palindrome.\n\n"); else if(state_m) printf(" -- is a mirrored string.\n\n"); else if(state_p) printf(" -- is a regular palindrome.\n\n"); else printf(" -- is not a palindrome.\n\n"); memset(s, 0, sizeof(s)); } return 0; }

转载于:https://www.cnblogs.com/shixuehunk/archive/2011/07/13/2105714.html

你可能感兴趣的文章
【47】8. String to Integer (atoi)
查看>>
将UINavgationController的push改成从左到右
查看>>
[原][译][osgearth]API加载地球(OE官方文档翻译)
查看>>
[原][c++][数学]osg常用图形数学算法小结
查看>>
Android测试环境搭建(win7)
查看>>
php操作dom,simplexml、xpath对xml的读取,以及xml作为数据传输接口的使用的认识...
查看>>
ubuntu的dns设置
查看>>
查看w3wp进程占用的内存及.NET内存泄露,死锁分析
查看>>
es5严格模式简谈
查看>>
团队项目-个人任务07
查看>>
调用系统相机拍照,保存照片,调用系统裁剪API对照片处理,显示裁剪之后的照片...
查看>>
《围城》读后感 钱钟书
查看>>
文本存储
查看>>
Linux设备驱动--块设备(一)之概念和框架
查看>>
男性健身全攻略 男人4大方法快速塑形
查看>>
Qt5.4中遇到找不到头文件<QApplication>等。
查看>>
英特尔 QSV 在 FFMPEG 中的使用(Linux)
查看>>
爱上OpenCL的十个理由
查看>>
时序分析/约束(三)——Xilinx时钟资源 & ISE时序分析器
查看>>
从Git和SVN看版本控制
查看>>