回文序列

来源:互联网 发布:大数据 4v 编辑:程序博客网 时间:2024/06/11 20:14

3第一天开通博客从此有了记流水账的平台,再也不用担心学的东西记不住了~~~

第一篇 回文串:要求:输入一个字符串判读是否是回文串及镜像串。输入串保证不含数字0.回文串就是反串以后与原串相同如abba。镜像串就是左右镜像之后与原串相同如3AIAE和2S。

c程序(c++源文件):

#include <cstdio>#include <cmath>#include <cstring>#include <cctype>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)){        return rev[ch-'A'];//返回字母的镜像    }else    return rev[ch-'0'+25];//返回数字的镜像,rev中数字前面有26个大写英文字母的镜像}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+1)/2;i++){            if(s[i]!=s[len-i-1] ) p=0;//不是回文串            if(r(s[i])!=s[len-i-1]) m=0;//不是镜像串        }         printf("%s--is %s.\n\n",s,msg[m*2+p]);    }    return 0;


}

0 0