2017年8月13日 星期日

UVA401:Palindromes

  1. import java.util.*;  
  2. class main{  
  3. public static void main(String[] arg){  
  4. Scanner sc = new Scanner(System.in);  
  5. while(sc.hasNext())  
  6. print(sc.next());  
  7. }  
  8. static void print(String str){  
  9. StringBuilder ssb = new  StringBuilder(str);  
  10. String SSB = ssb.reverse().toString();  
  11. if(SSB.equals(str)){  
  12. if(Palined(str.toCharArray())) System.out.println(str+" -- is a mirrored palindrome.\r\n");  
  13. else System.out.println(str+" -- is a regular palindrome.\r\n");  
  14. }else{  
  15. if(Palined(str.toCharArray())) System.out.println(str+" -- is a mirrored string.\r\n");  
  16. else System.out.println(str+" -- is not a palindrome.\r\n");  
  17. }  
  18.   
  19. }  
  20. static boolean Palined(char[] c){  
  21. boolean on = true ;  
  22. int i = 0 , j = c.length-1;   
  23. while(i < c.length && j >= 0){  
  24. if(c[i] != merr(c[j])) return  false ;  
  25. i++;j--;  
  26. }  
  27. return true ;   
  28. }  
  29. static char merr(char c){  
  30. switch(c){  
  31. case 'E' :  
  32.  return '3';  
  33. case '3' :  
  34.  return 'E';  
  35. case '5' :  
  36.  return 'Z';  
  37. case 'Z' :  
  38.  return '5';  
  39. case '2' :  
  40.  return 'S';  
  41. case 'S' :  
  42.  return '2';   
  43. case 'J' :  
  44.  return 'L';   
  45. case 'L' :  
  46.  return 'J';  
  47. case 'A':  
  48. case 'H':  
  49. case 'I':    
  50. case 'M':   
  51. case 'O':  
  52. case 'Y':  
  53. case 'T':  
  54. case 'U':  
  55. case 'X':  
  56. case 'W':  
  57. case 'V':  
  58. case '8':  
  59. case '1':  
  60.    return c ;  
  61. default :  
  62.    return ' ' ;      
  63. }  
  64.   
  65. }  

沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。