#define LOCAL
#include<cstdio>
#include<iostream>
#include<string.h>
#include<ctype.h>
using namespace std;
const char* mes[]={"is not a palindrome","is a regular palindrome","is a mirrored string","is a mirrored palindrome"};
const char* rev={"A 3 HIL JM O 2TUVWXY51SE Z 8 "};
const int maxn=1000;
char getreverse(char c)
{
if(isalpha(c))
{
return rev[c-'A'];
}
else
return rev[c-'0'+25];
}
int main()
{
#ifdef LOCAL
freopen("/Users/wangkeyuan/i.txt","r",stdin);
freopen("/Users/wangkeyuan/o.txt","w",stdout);
#endif
char s[maxn];
while(scanf("%s",s)==1)
{
int len=strlen(s);
int p=1,m=1;
for(int i=0;i<(len+1)/2;i++)
{
if(s[i]!=s[len-1-i])
p=0;
if(getreverse(s[i])!=s[len-1-i])
m=0;
}
printf("%s -- %s.\n\n",s,mes[2*m+p]);
}
}
POJ 1590 Palindromes(回文词——制表)
最新推荐文章于 2022-01-11 15:51:55 发布
本文介绍了一个C++程序,用于判断输入的字符串是否为普通的回文串、镜像字符串或是镜像回文串。通过定义一组映射规则,程序能够识别字母和数字在镜像下的对应字符,并进行相应的比较。
962

被折叠的 条评论
为什么被折叠?



