Source code for submission s499

fs.java

  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.util.ArrayList;
  5. import java.util.Collections;
  6. import java.util.HashMap;
  7. import java.util.List;
  8. import java.util.Map;
  9. import java.util.Map.Entry;
  10. import java.util.regex.Pattern;
  11.  
  12. public class fs {
  13. public static void main(String[] args) throws IOException {
  14. Pattern p = Pattern.compile("\\s");
  15. String line;
  16. Map<String, String> pismena = new HashMap<String, String>();
  17. pismena.put("A", ".-");
  18. pismena.put("B", "-...");
  19. pismena.put("C", "-.-.");
  20. pismena.put("D", "-..");
  21. pismena.put("E", ".");
  22. pismena.put("F", "..-.");
  23. pismena.put("G", "--.");
  24. pismena.put("H", "....");
  25. pismena.put("I", "..");
  26. pismena.put("J", ".---");
  27. pismena.put("K", "-.-");
  28. pismena.put("L", ".-..");
  29. pismena.put("M", "--");
  30. pismena.put("N", "-.");
  31. pismena.put("O", "---");
  32. pismena.put("P", ".--.");
  33. pismena.put("Q", "--.-");
  34. pismena.put("R", ".-.");
  35. pismena.put("S", "...");
  36. pismena.put("T", "-");
  37. pismena.put("U", "..-");
  38. pismena.put("V", "...-");
  39. pismena.put("W", ".--");
  40. pismena.put("X", "-..-");
  41. pismena.put("Y", "-.--");
  42. pismena.put("Z", "--..");
  43. pismena.put("_", "..--");
  44. pismena.put(",", ".-.-");
  45. pismena.put(".", "---.");
  46. pismena.put("?", "----");
  47. Map<String, String> morzeovka = new HashMap<String, String>();
  48. for (Entry<String, String> e : pismena.entrySet()) {
  49. morzeovka.put(e.getValue(), e.getKey());
  50. }
  51.  
  52. while ((line = buf.readLine()) != null) {
  53. String vstup = line;
  54. // System.out.println(vstup);
  55. StringBuilder sb = new StringBuilder();
  56. List<Integer> dlzkaPismenNaVstupe = new ArrayList<Integer>();
  57.  
  58. for (int i = 0; i < vstup.length(); i++) {
  59. // System.out.println("vstup char " + vstup.charAt(i));
  60. String morzePreklad = pismena.get(vstup.charAt(i) + "");
  61. // System.out.println("preklad vstupu " + morzePreklad);
  62. sb.append(morzePreklad);
  63. dlzkaPismenNaVstupe.add(morzePreklad.length());
  64. // System.out.println("aktualny preklad dzlka "
  65. // + morzePreklad.length());
  66.  
  67. }
  68.  
  69. // System.out.println(sb.toString());
  70. // System.out.println("pred otocenim dlzka pismen na vstupe "
  71. // + dlzkaPismenNaVstupe);
  72. Collections.reverse(dlzkaPismenNaVstupe);
  73. // System.out.println("otocene dlzka pismen na vstupe "
  74. // + dlzkaPismenNaVstupe);
  75. String vstupOtoceny = sb.toString();
  76. sb = new StringBuilder();
  77. StringBuilder sb2;
  78. int pozicia = 0;
  79. for (int i = 0; i < dlzkaPismenNaVstupe.size(); i++) {
  80. sb2 = new StringBuilder();
  81. // System.out.println("dlzka " + dlzkaPismenNaVstupe.get(i));
  82. for (int j = 0; j < dlzkaPismenNaVstupe.get(i); j++) {
  83. sb2.append(vstupOtoceny.charAt(pozicia + j));
  84. }
  85. String otocenePismenoVstupu = sb2.toString();
  86. String vystupPismeno = morzeovka.get(otocenePismenoVstupu);
  87. // System.out.println("otocene pismeno vstupu "
  88. // + otocenePismenoVstupu + " " + vystupPismeno);
  89. sb.append(vystupPismeno);
  90. pozicia += dlzkaPismenNaVstupe.get(i);
  91. }
  92. System.out.println(sb.toString());
  93.  
  94. }
  95. }
  96. }
  97.