UvaOj 401 - Palindromes

来源:互联网 发布:现在淘宝还能开店吗 编辑:程序博客网 时间:2024/06/08 06:33

刷点水题先恢复下手感....

题目

代码:

#include<cstdio>#include<cstring>#define MAXM 1000char fc[MAXM];void init(){    memset(fc, 0, sizeof(fc));    fc['A'] = 'A';    fc['E'] = '3';    fc['H'] = 'H';    fc['I'] = 'I';    fc['J'] = 'L';    fc['L'] = 'J';    fc['M'] = 'M';    fc['O'] = 'O';    fc['S'] = '2';    fc['T'] = 'T';    fc['U'] = 'U';    fc['V'] = 'V';    fc['W'] = 'W';    fc['X'] = 'X';    fc['Y'] = 'Y';    fc['Z'] = '5';    fc['1'] = '1';    fc['2'] = 'S';    fc['3'] = 'E';    fc['5'] = 'Z';    fc['8'] = '8';}#define MAXN 22char s[MAXN];int n;int ispa(char s[]){    for(int i=0; i<n/2; i++)    {        if(s[i] != s[n-1-i]) return 0;    }    return 1;}int ismi(char s[]){    for(int i=0; i<n/2; i++)    {        if(!fc[s[n-1-i]] || s[i] != fc[s[n-1-i]]) return 0;    }    if(n%2)    {        if(!fc[s[n/2]] || s[n/2] != fc[s[n/2]]) return 0;    }    return 1;}int main(){    init();    while(scanf("%s", s)!=EOF)    {        n = strlen(s);        int isp = ispa(s);        int ism = ismi(s);        if(isp && ism)        {            printf("%s -- is a mirrored palindrome.\n", s);        }        else if(isp)        {            printf("%s -- is a regular palindrome.\n", s);        }        else if(ism)        {            printf("%s -- is a mirrored string.\n", s);        }        else        {            printf("%s -- is not a palindrome.\n", s);        }        printf("\n");    }}