例题3-3回文词镜像词

来源:互联网 发布:苏州淘宝摄影 编辑:程序博客网 时间:2024/05/20 10:56
#include<cstring>#include<cmath>#include<cstdio>#include<cstdlib>#include<algorithm>#include<ctime>#include<ctype.h>using namespace std;const char* rev="A   3  HIL JM O   2TUVWXY51SE Z  8";const char* msg[]={"not a palindrome","a regular palindrome","a mirrored string","a mirrored palindrome"};char r(char ch){    if(isalpha(ch))retrurn rev[ch-'A'];    else return rev[ch-'0'+25];}int main(){    char s[30];    while(scanf(%s,s)==1)    {        int len=strlen(s);        int p=1,m=1;        for(int i=0;i<len/2;i++)        {            if(s[i]!=s[len-i-1])p=0;            if(r(s[i])!=s[len-1-i])m=0;        }        printf("%s -- is %s.\n\n",s, msg[m*2+p]);    }    return 0;}

如果ch是大写字母,则ch-‘A’就是它在字母表中的序号,类似的如果是数字,则ch-‘0’就是这个数字的数值本身。

原创粉丝点击