算法竞赛 例3-3回文词(Palindromes,UVa401)
2018-01-27 20:47
260 查看
输入一个字符串,判断它是否为回文串以及镜像串。输入字符串保证不含数字0。
输入的每行包含一个字符串(保证只有上述字符。不含空白字符),判断它是否为回文串和镜像串(共4种组合)。每组数据之后输出一个空行。
样例输入:
NOTAPALINDROME
ISAPALINILAPASI
2A3MEAS
ATOYOTA
样例输出:
NOTAPALINDROME – is not a palindrome.
ISAPALINILAPASI – is a regular palindrome.
2A3MEAS – is a mirrored string.
ATOYOTA – is a mirrored palindrome.
所谓回文串,就是反转以后和原串相同,如abba和madam。
所有镜像串,就是左右镜像之后和原串相同,如2S和3AIAE。注意,并不是每个字符在镜像之后都能得到一个合法字符。在本题中,每个字符的镜像如图所示(空白项表示该字符镜像后不能得到一个合法字符)。
输入的每行包含一个字符串(保证只有上述字符。不含空白字符),判断它是否为回文串和镜像串(共4种组合)。每组数据之后输出一个空行。
样例输入:
NOTAPALINDROME
ISAPALINILAPASI
2A3MEAS
ATOYOTA
样例输出:
NOTAPALINDROME – is not a palindrome.
ISAPALINILAPASI – is a regular palindrome.
2A3MEAS – is a mirrored string.
ATOYOTA – is a mirrored palindrome.
while(scanf("%d",s)==1)表示当成功读入一个字符串信息时,循环 1表示读入一个有效的数据
#include<stdio.h> #include<string.h> #include<ctype.h> #define LOCAL const char* rev = "A 3 HIL JM O 2TUVWXY51SE Z 8 "; const char* msg[] = {"not a palindrome",//不是回文词 "a regular pelindrome",//是回文词 "a mirrored string",//镜像串 "a mirrored palindrome"};//回文镜像串 char r(char ch) { if(isalpha(ch)) return rev[ch-'A']; return rev[ch - '0' + 25]; } int main() { #ifdef LOCAL freopen("/Users/zhaohaibo/Desktop/a.txt","r",stdin); // freopen("/Users/zhaohaibo/Desktop/b.txt","w",stdout); #endif char s[30]; long len; while(scanf("%s",s) == 1) { len = strlen(s); int p = 1,m = 1,i; for(i = 0; i < (len+1)/2; i++) { if(s[i] != s[len-1-i]) p = 0; if(r(s[i]) != s[len-1-i]) m = 0;//不是镜像串 } printf("%s -- is %s.\n\n",s,msg[m*2+p]); } return 0; }
相关文章推荐
- 算法竞赛入门 7.1.3 分数拆分
- 算法竞赛入门经典: 第三章 数组和字符串 3.1逆序输出
- 算法竞赛中的输入输出框架
- 算法竞赛入门经典 刽子手游戏 Rail ,Hangman judge UVa 489
- 算法竞赛入门经典:第六章 数据结构基础 6.12迷宫路径
- hiho太阁面经算法竞赛10
- 《算法竞赛-训练指南》第一章-1.13_LA 3635
- (算法竞赛入门)埃及分数问题学习笔记
- 算法竞赛_交换两个变量(3种方法)
- ACM算法竞赛:抄课文
- 《算法竞赛-训练指南》第一章-1.24_pre二维矩阵中的最小连续矩阵和
- 算法竞赛入门经典_4.3_递归
- 算法竞赛入门经典 5.2.1有多少位进位
- 算法竞赛入门经典第六章例题6-7 Trees on the level UVA - 122
- 【天池竞赛系列】淘宝穿衣搭配算法第二赛季12名思路
- 算法竞赛入门经典java版程序ch4 UVa213
- 《算法竞赛-训练指南》-第二章-2.18_UVa 10294
- 算法竞赛入门——铁轨
- 算法竞赛入门经典6.3.2层次遍历
- 《算法竞赛-训练指南》第二章-2.28_LA 3485(simpson)