Source code for submission s480

Fs.java

  1.  
  2. import java.util.ArrayList;
  3. import java.util.HashMap;
  4. import java.util.LinkedList;
  5. import java.util.List;
  6. import java.util.Map;
  7. import java.util.Scanner;
  8.  
  9. /*
  10.  * To change this template, choose Tools | Templates
  11.  * and open the template in the editor.
  12.  */
  13.  
  14. /**
  15.  *
  16.  * @author cteam038
  17.  */
  18. public class Fs {
  19.  
  20. private static Map<String, String> charsToMorse = new HashMap<String, String>();
  21. private static Map<String, String> morseToChars = new HashMap<String, String>();
  22.  
  23. static {
  24. charsToMorse.put("A",".-");
  25. charsToMorse.put("B","-...");
  26. charsToMorse.put("C","-.-.");
  27. charsToMorse.put("D","-..");
  28. charsToMorse.put("E",".");
  29. charsToMorse.put("F","..-.");
  30. charsToMorse.put("G","--.");
  31. charsToMorse.put("H","....");
  32. charsToMorse.put("I","..");
  33. charsToMorse.put("J",".---");
  34. charsToMorse.put("K","-.-");
  35. charsToMorse.put("L",".-..");
  36. charsToMorse.put("M","--");
  37. charsToMorse.put("N","-.");
  38. charsToMorse.put("O","---");
  39. charsToMorse.put("P",".--.");
  40. charsToMorse.put("Q","--.-");
  41. charsToMorse.put("R",".-.");
  42. charsToMorse.put("S","...");
  43. charsToMorse.put("T","-");
  44. charsToMorse.put("U","..-");
  45. charsToMorse.put("V","...-");
  46. charsToMorse.put("W",".--");
  47. charsToMorse.put("X","-..-");
  48. charsToMorse.put("Y","-.--");
  49. charsToMorse.put("Z","--..");
  50. charsToMorse.put("_","..--");
  51. charsToMorse.put(".","---.");
  52. charsToMorse.put(",",".-.-");
  53. charsToMorse.put("?","----");
  54. for (String ch : charsToMorse.keySet()) {
  55. morseToChars.put(charsToMorse.get(ch), ch);
  56. }
  57. }
  58.  
  59. public static void main(String [] args) {
  60. Scanner scanner = new Scanner(System.in);
  61. while (scanner.hasNextLine()) {
  62. String line = scanner.nextLine();
  63.  
  64. StringBuilder strBuilder = new StringBuilder();
  65. List<Integer> list = new LinkedList<Integer>();
  66. for (int i=0;i<line.length();i++) {
  67. String ch = line.substring(i, i+1);
  68. String morse = charsToMorse.get(ch);
  69. strBuilder.append(morse);
  70. list.add(0,morse.length());
  71. }
  72.  
  73.  
  74. StringBuilder sb = new StringBuilder();
  75. String encoded = strBuilder.toString();
  76. int i=0;
  77. for (Integer len : list) {
  78. sb.append(morseToChars.get(encoded.substring(i, i + len)));
  79. i += len;
  80. }
  81. System.out.println(sb);
  82. }
  83. }
  84.  
  85.  
  86. }
  87.