#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 发布