UVA 401 - Palindromes (字符串)
无语+ 无奈 10+的错误,看不懂的题意,不懂为何会AC,为神马删了对O和0的判断就AC。。。真受不了。。。
1 #include <stdio.h> 2 #include <string.h> 3 int main() 4 { 5 int i,j,len,x,y; 6 char p[1000],o[1000]; 7 while(gets(p)) 8 { 9 x = y = 1; 10 len = strlen(p); 11 for(i = 0; i <= len-1; i ++) 12 { 13 if(p[i] != p[len-i-1]) 14 { 15 x=0; 16 break; 17 } 18 } 19 for(i = 0; i <= len-1; i ++) 20 { 21 if(p[i] == 'A') 22 o[i] = 'A'; 23 else if(p[i] == 'E') 24 o[i] = '3'; 25 else if(p[i] == 'H') 26 o[i] = 'H'; 27 else if(p[i] == 'I') 28 o[i] = 'I'; 29 else if(p[i] == 'J') 30 o[i] = 'L'; 31 else if(p[i] == 'L') 32 o[i] = 'J'; 33 else if(p[i] == 'M') 34 o[i] = 'M'; 35 else if(p[i]=='S') 36 o[i] = '2'; 37 else if(p[i] == 'T') 38 o[i] = 'T'; 39 else if(p[i] == 'U') 40 o[i] = 'U'; 41 else if(p[i] == 'V') 42 o[i] = 'V'; 43 else if(p[i] == 'W') 44 o[i] = 'W'; 45 else if(p[i] == 'X') 46 o[i] = 'X'; 47 else if(p[i] == 'Y') 48 o[i] = 'Y'; 49 else if(p[i] == 'Z') 50 o[i] = '5'; 51 else if(p[i] == '1') 52 o[i] = '1'; 53 else if(p[i] == '2') 54 o[i] = 'S'; 55 else if(p[i] == '3') 56 o[i] = 'E'; 57 else if(p[i] == '5') 58 o[i] = 'Z'; 59 else if(p[i] == '8') 60 o[i] = '8'; 61 else if(p[i] =='O') 62 o[i] = 'O'; 63 else if(p[i]=='0') 64 o[i] = '0'; 65 else 66 { 67 y = 0; 68 } 69 if(o[i] == p[len-i-1]) 70 ; 71 else 72 { 73 y = 0; 74 break; 75 } 76 } 77 if(x&&y) 78 printf("%s -- is a mirrored palindrome.\n",p); 79 else if(!x&&y) 80 printf("%s -- is a mirrored string.\n",p); 81 else if(x&&!y) 82 printf("%s -- is a regular palindrome.\n",p); 83 else if(!x&&!y) 84 printf("%s -- is not a palindrome.\n",p); 85 printf("\n"); 86 } 87 return 0; 88 }