📄 1318 palindromes.cpp
字号:
#include <cstdio>
#include <string>
using namespace std;
char rever[50];
char str[25],org[25];
int check()
{
int p,m,len,i,j;
char mch;
p=0;m=0;
len=strlen(str);
i=0;j=len-1;
while(i<=j)
{
p=1;
if(str[i]=='0')
str[i]='O';
if(str[j]=='0')
str[j]='O';
if(str[i]!=str[j])
{
p=0;
break;
}
i++;j--;
}//while p
i=0;j=len-1;
while(i<len)
{
m=2;
mch=rever[ str[i]-'0' ];
if(mch != str[j])
{
m=0;
break;
}
i++;j--;
}
return p+m;
}
int main()
{
int i,j,ans;
rever['0'-'0']='O';// O (zero) and 0 (the letter)
rever['A'-'0']='A';
rever['E'-'0']='3';
rever['H'-'0']='H';
rever['I'-'0']='I';
rever['J'-'0']='L';
rever['L'-'0']='J';
rever['M'-'0']='M';
rever['O'-'0']='O';// O (zero) and 0 (the letter)
rever['S'-'0']='2';
rever['T'-'0']='T';
rever['U'-'0']='U';
rever['V'-'0']='V';
rever['W'-'0']='W';
rever['X'-'0']='X';
rever['Y'-'0']='Y';
rever['Z'-'0']='5';
rever['1'-'0']='1';
rever['2'-'0']='S';
rever['3'-'0']='E';
rever['5'-'0']='Z';
rever['8'-'0']='8';
while( scanf("%s",&org)!=EOF )
{
strcpy(str,org);
ans=check();
switch(ans)
{
case 0:
printf("%s -- is not a palindrome.\n",org);
break;
case 1:
printf("%s -- is a regular palindrome.\n",org);
break;
case 2:
printf("%s -- is a mirrored string.\n",org);
break;
case 3:
printf("%s -- is a mirrored palindrome.\n",org);
break;
}
printf("\n");
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -