#include <stdio.h>
#include <string.h>
#include <ctype.h>
char mirror[22] = {'A','E','H','I','J','L','M','O','S','T','U','V','W','X','Y','Z','1','2','3','5','8','\0'};
char raw[22] = {'A','3','H','I','L','J','M','O','2','T','U','V','W','X','Y','5','1','S','E','Z','8','\0'};
int look_up(char c);
int main(){
//freopen("in.txt","r",stdin);
char s[30];
while(gets(s)!=NULL){
int len = strlen(s);
bool isPalindrome = true;
for(int i =0;i<=len/2;i++){
if(s[i]!=s[len-1-i]) {isPalindrome = false;break;}
}
bool isMirrored = true;
for(int i = 0;i<len;i++){
int pos = look_up(s[i]);
if(pos != -1){
if(raw[pos] != s[len-1-i]){
isMirrored = false;
break;
}
}else{
isMirrored = false;
break;
}
}
printf("%s -- is ",s);
if(isPalindrome){
if(isMirrored){
printf("a mirrored palindrome.\n");
}else{
printf("a regular palindrome.\n");
}
}else{
if(isMirrored){
printf("a mirrored string.\n");
}else{
printf("not a palindrome.\n");
}
}
printf("\n");
}
return 0;
}
int look_up(char c){
for(int i = 0;i<22;i++){
if(mirror[i] == c)
return i;
}
return -1;
}
UVaOJ 401 - Palindromes
最新推荐文章于 2016-09-25 13:51:57 发布