回文序列

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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值