回文和镜像字符

Hello World

#include<bits/stdc++.h>
/*
判断一个字符串是否是回文串,是否是镜像串
*/
using namespace std;

const char* rev = "A   3  HIL JM O   2TUVWXY51SE Z  8";//空格,为了确定相应位置
const char* msg[] = {" -- is not a palindrome."," -- is a regular palindrome."," -- is a mirrored string."," -- is a mirrored palindrome."};

char r(char ch)
{
    if(isalpha(ch)) return rev[ch - 'A'];
    return rev[ch - '0' + 25];
}
int main()
{

    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);

    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 - 1 - i]) p = 0;
            if(r(s[i]) != s[len - 1 - i]) m = 0;
        }

        printf("%s%s\n\n", s, msg[m * 2 + p]);
    }

    
     

    return 0;
}
posted @   bakul  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 易语言 —— 开山篇
点击右上角即可分享
微信分享提示