1. import java.util.*; 
  2. /** 
  3.  *  
  4.  * @author tunzao 
  5.  * @version 1.0 May 6, 2011 
  6.  * 
  7.  */ 
  8. public class Palindromes 
  9.     public static void main(String[] args) 
  10.     { 
  11.         Scanner in = new Scanner(System.in); 
  12.         while(in.hasNext()) 
  13.         { 
  14.             String s =  in.nextLine(); 
  15.             if (s.length() == 0
  16.                 break
  17.             char[] ch = s.toCharArray(); 
  18.             boolean isPal = true
  19.             boolean isMirror = true
  20.              
  21.             for (int i = 0, j = ch.length-1; i < j; i++, j--) 
  22.             { 
  23.                 if (ch[i] != ch[j]) 
  24.                 { 
  25.                     isPal = false
  26.                     if (ch[i] != getReverseChar(ch[j])) 
  27.                     { 
  28.                         isMirror = false
  29.                         break
  30.                     } 
  31.                 } 
  32.             } 
  33.              
  34.             if (!isPal && !isMirror) 
  35.                 System.out.println(s + " -- is not a palindrome."); 
  36.             else if (isPal && !isMirror) 
  37.                 System.out.println(s + " -- is a regular palindrome."); 
  38.             else if (!isPal && isMirror) 
  39.                 System.out.println(s + " -- is a mirrored string."); 
  40.             else 
  41.                 System.out.println(s + " -- is a mirrored palindrome."); 
  42.         } 
  43.         in.close(); 
  44.         //System.exit(0); 
  45.     } 
  46.      
  47.     private static char getReverseChar(char c) 
  48.     { 
  49.         switch (c) 
  50.         { 
  51.             case 'A'
  52.                 return 'A'
  53.             case 'E'
  54.                 return '3'
  55.             case 'H'
  56.                 return 'H'
  57.             case 'I'
  58.                 return 'I'
  59.             case 'J'
  60.                 return 'L'
  61.             case 'L'
  62.                 return 'J'
  63.             case 'M'
  64.                 return 'M'
  65.             case 'O'
  66.                 return 'O'
  67.             case 'S'
  68.                 return '2'
  69.                  
  70.             case 'T'
  71.                 return 'T'
  72.             case 'U'
  73.                 return 'U'
  74.             case 'W'
  75.                 return 'W'
  76.             case 'X'
  77.                 return 'X'
  78.             case 'Y'
  79.                 return 'Y'
  80.             case 'Z'
  81.                 return '5'
  82.             case '1'
  83.                 return '1'
  84.             case '2'
  85.                 return 'S'
  86.             case '3'
  87.                 return 'E'
  88.             case '5'
  89.                 return 'Z'
  90.             case '8'
  91.                 return '8'
  92.             default
  93.                 return 0
  94.         } 
  95.     }