zrq495
www.zrq495.com

这题是相当的纠结啊,WA了10+次。。。

AC代码:

 

 1 #include<stdio.h>
 2 #include<string.h>
 3 
 4 char one[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789";
 5 char two[]="A   3  HIL JM O   2TUVWXY51SE Z  8 ";
 6 
 7 int palin(char str[])
 8 {
 9     int i, j;
10     j=strlen(str)-1;
11     for (i=0; i<=j; i++, j--)
12     {
13         if(str[i] != str[j])
14         {
15             return 0;
16         }
17     }
18     return 1;
19 }
20 
21 int pos(char ch)
22 {
23     int len=35, i;
24     for(i=0;i<len;i++)
25       if(one[i]==ch)
26         return i;
27     return len;
28 }
29 
30 int mirror(char str[])
31 {
32     int i, t, k=strlen(str)-1;
33     for (i=0; i<=k; i++, k--)
34     {
35         t=pos(str[i]);
36         if (str[k] != two[t])
37         {
38             return 0;
39         }
40     }
41     return 1;
42 }
43 
44 int main()
45 {
46     int n, m, i;
47     char str[1000];
48     while(gets(str))
49     {
50         /*for (i=0; i<strlen(str); i++)
51         {
52             if (str[i] == '0')
53                 str[i]='O';
54         }*/
55         n=palin(str);
56         m=mirror(str);
57         if (!n && !m)
58         {
59             printf("%s -- is not a palindrome.\n\n", str);
60             continue;
61         }
62         if (n && !m)
63         {
64             printf("%s -- is a regular palindrome.\n\n", str);
65             continue;
66         }
67         if (!n && m)
68         {
69             printf("%s -- is a mirrored string.\n\n",str);
70             continue;
71         }
72         if (n && m)
73         {
74             printf("%s -- is a mirrored palindrome.\n\n", str);
75             continue;
76         }
77     }
78     return 0;
79 }
posted on 2012-05-24 16:48  zrq495  阅读(357)  评论(0编辑  收藏  举报