uva 401

来源:互联网 发布:游戏编程软件下载 编辑:程序博客网 时间:2024/05/16 12:26
代码写得有点小繁琐,见谅吧....懒得再算数组顺序了
#include <iostream>  #include <cstdio>  #include <cstring>  #include <cstdlib>  using namespace std;                        int is_palindrome( char str[] );       int is_mirrored( char str[] );          int main()  {      int value;      char str[1000];      while( cin >> str )      {             value = 0;             value += is_palindrome( str );             value += is_mirrored( str );             switch( value )             {                     case 0: cout << str << " -- is not a palindrome." << endl; break;                     case 1: cout << str << " -- is a regular palindrome." << endl; break;                     case 2: cout << str << " -- is a mirrored string." << endl; break;                     case 3: cout << str << " -- is a mirrored palindrome." << endl; break;                         }            cout << endl;    }    return 0;  }  int is_palindrome( char str[] )  {      int len = strlen(str);      for( int i = 0; i < len; i++ )      {         if( (str[i] == '0' || str[i] == 'O') &&  (str[len-i-1] == '0' || str[len-i-1] == 'O'))             continue;           if( str[i] != str[len-i-1] )               return 0;      }      return 1;  }  int is_mirrored( char str[] )  {      int a, b;      int len = strlen(str);      for( int i = 0; i < len; i++ )      {           a = i;           b = len-i-1;           if( a != b )           {               if( !(str[a] == 'A' || str[a] == 'E' ||                   str[a] == 'H' || str[a] == 'I' ||                   str[a] == 'J' || str[a] == 'L' ||                    str[a] == 'M' || str[a] == 'O' ||                    str[a] == 'S' || str[a] == 'T' ||                   str[a] == 'U' || str[a] == 'V' ||                   str[a] == 'W' || str[a] == 'X' ||                   str[a] == 'Y' || str[a] == 'Z' ||                   str[a] == '1' || str[a] == '2' ||                   str[a] == '3' || str[a] == '5' ||                   str[a] == '8' || str[a] == '0' )                 )                return 0;               if( str[a] == 'A' && str[b] != 'A'  )                   return 0;               else if( str[a] == 'E' && str[b] != '3'  )                   return 0;               else if( str[a] == 'H' && str[b] != 'H'  )                   return 0;               else if( str[a] == 'I' && str[b] != 'I'  )                   return 0;               else if( str[a] == 'J' && str[b] != 'L'  )                   return 0;                else if( str[a] == 'L' && str[b] != 'J'  )                   return 0;                  else if( str[a] == 'M' && str[b] != 'M'  )                   return 0;               else if( str[a] == 'O' && !(str[b] == 'O' || str[b] == '0') )                   return 0;               else if( str[a] == '0' && !(str[b] == 'O' || str[b] == '0') )                    return 0;               else if( str[a] == 'S' && str[b] != '2'  )                   return 0;               else if( str[a] == 'T' && str[b] != 'T'  )                   return 0;               else if( str[a] == 'U' && str[b] != 'U'  )                   return 0;               else if( str[a] == 'V' && str[b] != 'V'  )                   return 0;               else if( str[a] == 'W' && str[b] != 'W'  )                   return 0;               else if( str[a] == 'X' && str[b] != 'X'  )                   return 0;               else if( str[a] == 'Y' && str[b] != 'Y'  )                   return 0;               else if( str[a] == 'Z' && str[b] != '5'  )                   return 0;               else if( str[a] == '1' && str[b] != '1'  )                   return 0;               else if( str[a] == '2' && str[b] != 'S' )                   return 0;               else if( str[a] == '3' && str[b] != 'E' )                   return 0;               else if( str[a] == '5' && str[b] != 'Z' )                   return 0;               else if( str[a] == '8' && str[b] != '8' )                   return 0;                                  }           else           {              if( str[a] != 'A' && str[a] != 'E' &&                    str[a] != 'H' && str[a] != 'I' &&                    str[a] != 'J' && str[a] != 'L' &&                     str[a] != 'M' && str[a] != 'O' &&                     str[a] != 'S' && str[a] != 'T' &&                    str[a] != 'U' && str[a] != 'V' &&                    str[a] != 'W' && str[a] != 'X' &&                    str[a] != 'Y' && str[a] != 'Z' &&                    str[a] != '1' && str[a] != '2' &&                    str[a] != '3' && str[a] != '5' &&                    str[a] != '8' && str[a] != '0' )                  return 0;           }      }      return 2;  }  

原创粉丝点击