题目链接:http://acm.hust.edu.cn:8080/judge/problem/viewProblem.action?id=19520
题目大意:给你一个字符串,一要你判断是否是回文串;二要把这个字符串的每一个字符按照给定的规则翻转,而然后判断翻转后的字符串是否是原串的逆序。
思路不难,但是有些地方要注意。首先要注意的一个问题是,大写字母O和数字0是一样的。这一点我觉得题目的表述不妥,按照我对题目的理解,数字0是无效的,应该是不会出现的,但是结果跟我的理解不一样。然后就是如果串中含有不能翻转的字母,那么是不能成为mirrored string的,我把不能翻转的字母的翻转字母记为-1。
具体代码:
题目大意:给你一个字符串,一要你判断是否是回文串;二要把这个字符串的每一个字符按照给定的规则翻转,而然后判断翻转后的字符串是否是原串的逆序。
思路不难,但是有些地方要注意。首先要注意的一个问题是,大写字母O和数字0是一样的。这一点我觉得题目的表述不妥,按照我对题目的理解,数字0是无效的,应该是不会出现的,但是结果跟我的理解不一样。然后就是如果串中含有不能翻转的字母,那么是不能成为mirrored string的,我把不能翻转的字母的翻转字母记为-1。
具体代码:
#include<stdio.h> #include<ctype.h> #include<string.h> char reverseNum[]={'0','1','S','E',-1,'Z',-1,-1,'8',-1}; char reverseLetter[]={'A',-1,-1,-1,'3',-1,-1,'H','I','L',-1,'J','M',-1,'O',-1,-1,-1,'2','T','U','V','W','X','Y','5'}; bool isPalindrome(char *str) { int i,len=strlen(str); for(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[i]!=str[len-i-1]) break; } if(i<len/2) return 0; else return 1; } bool isMirrored(char *str) { int i,len=strlen(str); for(i=0;i<(len+1)/2;i++) if(isalpha(str[i])) { if(str[i]=='O'&&str[len-i-1]=='0') continue; if(reverseLetter[str[i]-'A']==-1||reverseLetter[str[i]-'A']!=str[len-i-1]) break; } else { if(str[i]=='0'&&str[len-i-1]=='O') continue; if(reverseNum[str[i]-'0']==-1||reverseNum[str[i]-'0']!=str[len-i-1]) break; } if(i<(len+1)/2) return 0; else return 1; } int main() { int p,m; char str[2000]; while(gets(str)) { p=m=0; if(isPalindrome(str)) p=1; if(isMirrored(str)) m=1; if(p&&m) printf("%s -- is a mirrored palindrome.\n\n",str); else if(p) printf("%s -- is a regular palindrome.\n\n",str); else if(m) printf("%s -- is a mirrored string.\n\n",str); else printf("%s -- is not a palindrome.\n\n",str); } return 0; }
发表评论
-
UVa 10422 Knights in FEN
2012-09-07 08:40 895题目:http://uva.onlinejudge.org/i ... -
UVa 539 The Settlers of Catan
2012-08-31 22:22 28题目:http://uva.onlinejudge.org/i ... -
UVa 301 Transportation
2012-08-31 22:10 34题目:http://uva.onlinejudge.org/i ... -
UVa 639 Don't Get Rooked
2012-08-30 23:01 805题目:http://uva.onlinejudge.org/i ... -
UVa 216 Getting in Line
2012-08-29 20:48 719题目:http://uva.onlinejudge.org/i ... -
UVa 10474 Where is the Marble?
2012-08-28 13:45 847题目:http://uva.onlinejudge.org/i ... -
UVa 592 Island of Logic
2012-08-27 11:05 1636题目:http://uva.onlinejudge ... -
UVa 11205 The broken pedometer
2012-08-25 17:28 1041题目:http://uva.onlinejudge.org/i ... -
UVa 131 The Psychic Poker Player
2012-08-24 22:28 866题目:http://uva.onlinejudge.org/i ... -
UVa 729 The Hamming Distance Problem
2012-08-24 12:18 686题目:http://uva.onlinejudge.org/i ... -
Uva 10098 Generating Fast
2012-08-23 15:28 651题目:http://uva.onlinejudge.org/i ... -
UVa 146 ID Codes
2012-08-20 18:46 758题目:http://uva.onlinejudge.org/i ... -
UVa 10167 Birthday Cake
2012-08-16 20:57 596题目:http://uva.onlinejudge.org/i ... -
UVa 10129 Play on Words
2012-08-15 22:49 1115题目:http://uva.onlinejudge.org/i ... -
UVa 10596 Morning Walk
2012-08-14 22:05 874题目:http://uva.onlinejudge.org/i ... -
Uva 10305 Ordering Tasks
2012-08-13 23:40 653题目:http://uva.onlinejudge.org/i ... -
Uva 10004 Bicoloring
2012-08-13 23:34 865题目:http://uva.onlinejudge.org/i ... -
Uva 532 Dungeon Master
2012-08-13 23:29 782题目:http://uva.onlinejudge ... -
Uva 439 Knight Moves
2012-08-11 22:24 652题目:http://uva.onlinejudge.org/i ... -
UVa 784 Maze Exploration
2012-08-11 14:09 816题目:http://uva.onlinejudge.org/i ...
相关推荐
判断输入字符串是否为镜像或回文串。 来源于UVaOJ - 401. 水题。
USACO题目Dual Palindromes (dualpal)及代码解析
zoj 1325 Palindromes.md
poj 3376 Finding Palindromes.md
-palindromes-源码.rar
编写一个递归函数testPalindrome,如果存储在数组中的字符串是回文,则返回1,否则返回0。 该函数应忽略字符串中的空格和标点符号。 分级标准 正确性和完整性70% 程序输出和测试15% 程序组织和源代码管理10% ...
给定一个字符串,编写一种算法以计算字符串中回文率的单词数。 输出中必须包含回文列表和回文数列表。 输入: "Dad gave mom a Tesla as a racecar" 输出: Dad, mom, racecar, 3 Palindromes 解释哈希表如何工作。...
这个应用程式会撷取一串文字,并传回是否是回文集,2015年9月9日 克里斯·斯旺(Chris Swan)和菲利普·香农(Phillip Shannon) 描述 这个应用程式会撷取一串文字,并传回是否属于回文。 设置 在桌面上克隆 在网络...
该项目是多年迭代开发和综合社区知识的产物。 它没有强加特定的开发哲学或框架,因此您可以按照自己的方式自由地构建代码。 主页: : 资料来源: : 推特: 快速开始 选择以下选项之一: ...
回文 简单的回文解析应用程序,给出了前三个最大的回文 说明:mvn install在目标/文件夹中运行具有一个参数的应用程序以扫描回文(将列出第一个)
题目有 Beautiful Meadow Big String Outspread Image Transformation palindromes Sum Up
ACM题目及答案——Common permutation,Base 9 Calculator,Calendar,Sorting by Swapping,Palindromes
标题前言hdu2023求平均成绩hdu2027统计元音hud2044一只小蜜蜂…hud2029Palindromes _easy versionhud2043密码hud2040亲和数hud2021发工资咯hud2032杨辉三角 前言 今天bigsai陪伴我刷题,我很高兴在他的帮助下过了8道...
9 [1.2] 双重回文数 Dual Palindromes 10 [1.3] 混合牛奶 Mixing Milk 11 [1.3] 修理牛棚 Barn Repair 12 [1.3] 牛式 Prime Cryptarithm 13 [1.3] 虫洞 wormhole 14 [1.3] 滑雪课程设计Ski Course Design
设计性试验实验指导书,栈和队列, 一、验证性实验 2 实验1:顺序栈的各种基本运算 2 实验2:链栈的各种基本运算 3 实验3:顺序队列的各种基本...实验4:镜像回文(Palindromes) 10 实验5:模拟车间流水线的工作 12
2001 计算两点间的距离 2005 第几天? 2007 平方和与立方和 2010 水仙花数 2011 多项式求和 2012 素数判定 2013 蟠桃记 2018 母牛的故事 ...2029 Palindromes_easy version 2035 人见人爱A^B 2040 亲和数
Returning back to problem solving, Gildong is now studying about palindromes. He learned that a palindrome is a string that is the same as its reverse. For example, strings “pop”, “noon”, “x”, ...
palindromes that can be built */ int longestPalindrome (string & s) { int result = 0 ; bool hasOdd = false ; std::unordered_map< char , int > count; for ( char ch: s) { ++count[ch]; } for (std::...
shortTitle是Reddit管理员提供的名称,例如Connect Four或Palindromes或其他名称。 该约定非常重要,因此请遵守该约定。 正如我前面提到的,如果有人不遵守该约定,我将首先警告您,但是第二次违规后,它将被删除。...
B. Longest Palindrome ...Returning back to problem solving, Gildong is now studying about palindromes. He learned that a palindrome is a string that is the same as its reverse. For example, strings