Source code for submission s800

Fs.java

  1.  
  2. import java.io.BufferedReader;
  3.  
  4. /*
  5.  * To change this template, choose Tools | Templates
  6.  * and open the template in the editor.
  7.  */
  8. import java.util.Arrays;
  9. import java.util.HashMap;
  10. import java.util.Scanner;
  11.  
  12. /**
  13.  *
  14.  * @author cteam020
  15.  */
  16. public class Fs {
  17.  
  18.  
  19. public static void main(String[] args) {
  20. Scanner sc = new Scanner(System.in);
  21. StringBuilder sb;
  22. HashMap<String, String> toMorse = new HashMap<String, String>();
  23. HashMap<String, String> fromMorse = new HashMap<String, String>();
  24. String msg;
  25. int[] morseLength;
  26.  
  27. toMorse.put("A", ".-");
  28. toMorse.put("B", "-...");
  29. toMorse.put("C", "-.-.");
  30. toMorse.put("D", "-..");
  31. toMorse.put("E", ".");
  32. toMorse.put("F", "..-.");
  33. toMorse.put("G", "--.");
  34. toMorse.put("H", "....");
  35. toMorse.put("I", "..");
  36. toMorse.put("J", ".---");
  37. toMorse.put("K", "-.-");
  38. toMorse.put("L", ".-..");
  39. toMorse.put("M", "--");
  40. toMorse.put("N", "-.");
  41. toMorse.put("O", "---");
  42. toMorse.put("P", ".--.");
  43. toMorse.put("Q", "--.-");
  44. toMorse.put("R", ".-.");
  45. toMorse.put("S", "...");
  46. toMorse.put("T", "-");
  47. toMorse.put("U", "..-");
  48. toMorse.put("V", "...-");
  49. toMorse.put("W", ".--");
  50. toMorse.put("X", "-..-");
  51. toMorse.put("Y", "-.--");
  52. toMorse.put("Z", "--..");
  53. toMorse.put("_", "..--");
  54. toMorse.put(",", ".-.-");
  55. toMorse.put(".", "---.");
  56. toMorse.put("?", "----");
  57.  
  58. fromMorse.put(".-","A" );
  59. fromMorse.put("-...","B" );
  60. fromMorse.put("-.-.","C" );
  61. fromMorse.put("-..","D" );
  62. fromMorse.put(".","E" );
  63. fromMorse.put("..-.","F" );
  64. fromMorse.put("--.","G" );
  65. fromMorse.put("....","H" );
  66. fromMorse.put("..","I" );
  67. fromMorse.put(".---","J" );
  68. fromMorse.put("-.-","K" );
  69. fromMorse.put(".-..","L" );
  70. fromMorse.put("--","M" );
  71. fromMorse.put("-.","N" );
  72. fromMorse.put("---","O" );
  73. fromMorse.put(".--.","P" );
  74. fromMorse.put("--.-","Q" );
  75. fromMorse.put(".-.", "R");
  76. fromMorse.put("...","S" );
  77. fromMorse.put("-","T" );
  78. fromMorse.put("..-","U");
  79. fromMorse.put("...-", "V");
  80. fromMorse.put(".--","W" );
  81. fromMorse.put("-..-","X" );
  82. fromMorse.put("-.--", "Y");
  83. fromMorse.put("--..", "Z");
  84. fromMorse.put( "..--","_");
  85. fromMorse.put(".-.-", ",");
  86. fromMorse.put("---.","." );
  87. fromMorse.put("----", "?");
  88.  
  89.  
  90. while(sc.hasNext()) {
  91. msg = sc.next();
  92. morseLength = new int[msg.length()];
  93. sb = new StringBuilder();
  94.  
  95. for (int i = 0; i < msg.length(); i++) {
  96. String s = toMorse.get( Character.toString(msg.charAt(i)));
  97.  
  98. sb.append( s );
  99. morseLength[msg.length()-1-i] = s.length();
  100. }
  101.  
  102. msg = sb.toString();
  103.  
  104. int i = 0;
  105. int a = 0;
  106. sb = new StringBuilder();
  107.  
  108.  
  109. for (int j = 0; j < morseLength.length; j++) {
  110.  
  111. int b = morseLength[i++];
  112.  
  113. String s = fromMorse.get(msg.substring(a, a+b));
  114.  
  115. sb.append(s);
  116. a += b;
  117. }
  118. System.out.println(sb);
  119.  
  120. }
  121. }
  122.  
  123. }
  124.