📄 1403.cpp
字号:
/* This Code is Submitted by wywcgs for Problem 1403 on 2005-03-21 at 21:23:00 */
#include <stdio.h>
#include <string.h>
int isPal(char, char);
int main()
{
char str[21];
int length, pal;
int i, flag;
while(gets(str) != NULL){
length = strlen(str);
if(length == 1){
pal = isPal(str[0], 1);
}else{
pal = 3;
for(i = 0; i < length / 2; i++){
flag = isPal(str[i], str[length-1-i]);
if(flag == 0){
pal = 0;
break;
}else if(flag == 1){
if(pal == 2){
pal = 0;
break;
}else{
pal = 1;
}
}else if(flag == 2){
if(pal == 1){
pal = 0;
break;
}else{
pal = 2;
}
}else if((pal == 3) && (flag == 3)){
pal = 3;
}
}
if((length % 2 == 1) && (pal != 0)){
flag = isPal(str[length/2-1], 0);
if(flag == 0){
if(pal == 3){
pal = 1;
}else if(pal == 2){
pal = 0;
}
}
}
}
switch(pal){
case 0:
printf("%s -- is not a palindrome.\n\n", str);
break;
case 1:
printf("%s -- is a regular palindrome.\n\n", str);
break;
case 2:
printf("%s -- is a mirrored string.\n\n", str);
break;
case 3:
printf("%s -- is a mirrored palindrome.\n\n", str);
break;
}
}
return 0;
}
int isPal(char a, char b)
{
switch(a){
case 'A': case 'H': case 'I': case 'M': case 'O': case 'T':
case 'U': case 'V': case 'W': case 'X': case 'Y': case '1':
case '8':
if((b == 0) || (b == 1)){
return 3;
}else{
if(a == b){
return 3;
}else{
return 0;
}
}
break;
case 'L': case 'J':
if(b == 0){
return 2;
}else if(b == 1){
return 1;
}else{
if(a + b == 'L' + 'J'){
return 2;
}else if(a == b){
return 1;
}else{
return 0;
}
}
break;
case 'E': case '3':
if(b == 0){
return 2;
}else if(b == 1){
return 1;
}else{
if(a + b == 'E' + '3'){
return 2;
}else if(a == b){
return 1;
}else{
return 0;
}
}
break;
case 'S': case '2':
if(b == 0){
return 2;
}else if(b == 1){
return 1;
}else{
if(a + b == 'S' + '2'){
return 2;
}else if(a == b){
return 1;
}else{
return 0;
}
}
break;
case 'Z': case '5':
if(b == 0){
return 2;
}else if(b == 1){
return 1;
}else{
if(a + b == 'Z' + '5'){
return 2;
}else if(a == b){
return 1;
}else{
return 0;
}
}
break;
default:
if(b == 0){
return 0;
}else if(b == 1){
return 1;
}else{
if(a == b){
return 1;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -