2013年11月11日 星期一

[UVA] 401 - Palindromes


#include<stdio.h>
#include<string.h>
char s[50]="A...3..HIL.JM.O...2TUVWXYZ1SE.Z..8.";
char in[1000005];
int main(){
    int i,a,b,l;
    while(scanf("%s",in)!=EOF){
        printf("%s",in);
        a=1,b=1;
        l=strlen(in);
        for(i=0;i<l;i++)
            if(in[i]!=in[l-i-1])
                a=0;
        for(i=0;i<l;i++){
            if(in[i]<='Z' && in[i]>='A'){
                if(in[l-i-1]!=s[in[i]-'A'])
                    b=0;
            }
            else{
                if(in[l-i-1]!=s[in[i]-'1'+26])
                    b=0;
            }
        }
        if(a && b) puts(" -- is a mirrored palindrome.\n");
        if(!a && b) puts(" -- is a mirrored string.\n");
        if(a && !b) puts(" -- is a regular palindrome.\n");
        if(!a && !b) puts(" -- is not a palindrome.\n");
    }
}

沒有留言:

張貼留言