UVa401-Palindromes

来源:互联网 发布:三菱fxplc编程手册 编辑:程序博客网 时间:2024/06/03 21:42

UVa401-Palindromes

思路:

判断是否是回文和镜像,同样用字符串常量判断镜像可以好写很多。

代码:

#include <bits/stdc++.h>using namespace std;char mirrored(char ch){    char s[]="A   3  HIL JM O   2TUVWXY5";    char s2[]=" 1SE Z  8 ";    if(ch>='A'&&ch<='Z') return s[ch-'A'];    else return s2[ch-'0'];}int main(){    char s[50];    while(~scanf("%s",s))    {        int p=1,m=1,l=strlen(s);        for(int i=0;i<(l+1)/2;i++)        {            if(s[i]!=s[l-1-i]) p=0;            if(s[i]!=mirrored(s[l-1-i])) m=0;        }        printf("%s",s);        if(m==0)        {            if(p==0)                printf(" -- is not a palindrome.\n\n");            else                printf(" -- is a regular palindrome.\n\n");        }        else        {            if(p==0)                printf(" -- is a mirrored string.\n\n");            else                printf(" -- is a mirrored palindrome.\n\n");        }    }    return 0;}
原创粉丝点击