UVA 之401 - Palindromes(二)
{
continue;
}
if(Str[i] != Str[j]){
return 0;
}
}
return 1;
}
//判断是否是镜像字符串
int IsMirrored(char Str[]){
char temp[21];
int i,j,index;
int len = strlen(Str);
for(i = 0,j = len-1;i < len;i++,j--){
if(Str[i] >= 'A' && Str[i] <= 'Z'){
index = Str[i] - 'A';
temp[i] = MirroredStr[index];
}
else{
index = Str[i] - '1';
temp[i] = MirroredNum[index];
}
//0 和 O等价
if((temp[i] == '0' && Str[j] == 'O') || (temp[i] == 'O' && Str[j] == '0')){
continue;
}
if(temp[i] != Str[j]){
return 0;
}
}
return 1;
}
int main (){
char Str[21];
int i,len,IsP,IsM;
//freopen("C:\\Users\\XIAOSI\\Desktop\\acm.txt","r",stdin);
while(scanf("%s",Str) != EOF){
len = strlen(Str);
printf("%s -- ",Str);
//回文字符串
IsP = IsPalindromes(Str);
//镜面字符串
IsM = IsMirrored(Str);
//输出
if(IsP == 0 && IsM == 0){
printf("is not a palindrome.\n");
}
else if(IsP == 1 && IsM == 1){
printf("is a mirrored palindrome.\n");
}
else if(IsP == 1 && IsM == 0){
printf("is a regular palindrome.\n");
}
else if(IsP == 0 && IsM == 1){
printf("is a mirrored string.\n");
}
printf("\n");
}
return 0;
}