Source code for submission s857

Go to diff to previous submission

fs.java

  1.  
  2. import java.io.BufferedReader;
  3. import java.io.IOException;
  4. import java.io.InputStreamReader;
  5. import java.util.logging.Level;
  6. import java.util.logging.Logger;
  7.  
  8. public class fs {
  9.  
  10. public static String decodeMorse(String morse) {
  11.  
  12. if (morse.charAt(0) == '.') {
  13. if (morse.length() == 1) {
  14. return "E";
  15. }
  16.  
  17. if (morse.charAt(1) == '.') {
  18. if (morse.length() == 2) {
  19. return "I";
  20. }
  21.  
  22. if (morse.charAt(2) == '.') {
  23. if (morse.length() == 3) {
  24. return "S";
  25. }
  26.  
  27. if (morse.charAt(3) == '.') {
  28. return "H";
  29. } else {
  30. return "V";
  31. }
  32. } else {
  33. if (morse.length() == 3) {
  34. return "U";
  35. }
  36.  
  37. if (morse.charAt(3) == '.') {
  38. return "F";
  39. } else {
  40. return "_";
  41. }
  42. }
  43. } else {
  44. if (morse.length() == 2) {
  45. return "A";
  46. }
  47.  
  48. if (morse.charAt(2) == '.') {
  49. if (morse.length() == 3) {
  50. return "R";
  51. }
  52.  
  53. if (morse.charAt(3) == '.') {
  54. return "L";
  55. } else {
  56. return ",";
  57. }
  58. } else {
  59. if (morse.length() == 3) {
  60. return "W";
  61. }
  62.  
  63. if (morse.charAt(3) == '.') {
  64. return "P";
  65. } else {
  66. return "J";
  67. }
  68. }
  69. }
  70. } else {
  71. if (morse.length() == 1) {
  72. return "T";
  73. }
  74.  
  75. if (morse.charAt(1) == '.') {
  76. if (morse.length() == 2) {
  77. return "N";
  78. }
  79.  
  80. if (morse.charAt(2) == '.') {
  81. if (morse.length() == 3) {
  82. return "D";
  83. }
  84.  
  85. if (morse.charAt(3) == '.') {
  86. return "B";
  87. } else {
  88. return "X";
  89. }
  90. } else {
  91. if (morse.length() == 3) {
  92. return "K";
  93. }
  94.  
  95. if (morse.charAt(3) == '.') {
  96. return "C";
  97. } else {
  98. return "Y";
  99. }
  100. }
  101. } else {
  102. if (morse.length() == 2) {
  103. return "M";
  104. }
  105.  
  106. if (morse.charAt(2) == '.') {
  107. if (morse.length() == 3) {
  108. return "G";
  109. }
  110.  
  111. if (morse.charAt(3) == '.') {
  112. return "Z";
  113. } else {
  114. return "Q";
  115. }
  116. } else {
  117. if (morse.length() == 3) {
  118. return "O";
  119. }
  120.  
  121. if (morse.charAt(3) == '.') {
  122. return ".";
  123. } else {
  124. return "?";
  125. }
  126. }
  127. }
  128. }
  129.  
  130. /*if(morse.equals(".-"))
  131.   return new String ("A");
  132.   if(morse.equals("-..."))
  133.   return new String ("B");
  134.   if(morse.equals("-.-."))
  135.   return new String ("C");
  136.   if(morse.equals("-.."))
  137.   return new String("D");
  138.   if(morse.equals("."))
  139.   return new String("E");
  140.   if(morse.equals("..-."))
  141.   return new String("F");
  142.   if(morse.equals("--."))
  143.   return new String("G");
  144.   if(morse.equals("...."))
  145.   return new String("H");
  146.   if(morse.equals(".--."))
  147.   return new String("P");
  148.   if(morse.equals(".."))
  149.   return new String("I");
  150.   if(morse.equals(".---"))
  151.   return new String("J");
  152.   if(morse.equals("-.-"))
  153.   return new String("K");
  154.   if(morse.equals(".-.."))
  155.   return new String("L");
  156.   if(morse.equals("--"))
  157.   return new String("M");
  158.   if(morse.equals("-."))
  159.   return new String("N");
  160.   if(morse.equals("---"))
  161.   return new String("O");
  162.   if(morse.equals("--.-"))
  163.   return new String("Q");
  164.   if(morse.equals(".-."))
  165.   return new String("R");
  166.   if(morse.equals("..."))
  167.   return new String("S");
  168.   if(morse.equals("-"))
  169.   return new String("T");
  170.   if(morse.equals("..-"))
  171.   return new String("U");
  172.   if(morse.equals("...-"))
  173.   return new String("V");
  174.   if(morse.equals(".--"))
  175.   return new String("W");
  176.   if(morse.equals("-..-"))
  177.   return new String("X");
  178.   if(morse.equals("-.--"))
  179.   return new String("Y");
  180.   if(morse.equals("--.."))
  181.   return new String("Z");
  182.   if(morse.equals("..--"))
  183.   return new String("_");
  184.   if(morse.equals(".-.-"))
  185.   return new String(",");
  186.   if(morse.equals("---."))
  187.   return new String(".");
  188.   if(morse.equals("----"))
  189.   return new String("?");
  190.   return new String();*/
  191. }
  192.  
  193. public static String decode(String morse, String lengths) {
  194. StringBuilder ret = new StringBuilder();
  195. int currLen = 0;
  196.  
  197. for (int i = 0; i < lengths.length(); i++) {
  198. currLen = Integer.parseInt("" + lengths.charAt(i));
  199.  
  200. ret.append(fs.decodeMorse(morse.substring(0, currLen)));
  201. morse = morse.substring(currLen, morse.length());
  202. }
  203.  
  204. return ret.toString();
  205. }
  206.  
  207. public static String encode(char c) {
  208. switch (c) {
  209. case 'A':
  210. return new String(".-");
  211. case 'B':
  212. return new String("-...");
  213. case 'C':
  214. return new String("-.-.");
  215. case 'D':
  216. return new String("-..");
  217. case 'E':
  218. return new String(".");
  219. case 'F':
  220. return new String("..-.");
  221. case 'G':
  222. return new String("--.");
  223. case 'H':
  224. return new String("....");
  225. case 'I':
  226. return new String("..");
  227. case 'J':
  228. return new String(".---");
  229. case 'K':
  230. return new String("-.-");
  231. case 'L':
  232. return new String(".-..");
  233. case 'M':
  234. return new String("--");
  235. case 'N':
  236. return new String("-.");
  237. case 'O':
  238. return new String("---");
  239. case 'P':
  240. return new String(".--.");
  241. case 'Q':
  242. return new String("--.-");
  243. case 'R':
  244. return new String(".-.");
  245. case 'S':
  246. return new String("...");
  247. case 'T':
  248. return new String("-");
  249. case 'U':
  250. return new String("..-");
  251. case 'V':
  252. return new String("...-");
  253. case 'W':
  254. return new String(".--");
  255. case 'X':
  256. return new String("-..-");
  257. case 'Y':
  258. return new String("-.--");
  259. case 'Z':
  260. return new String("--..");
  261. case '_':
  262. return new String("..--");
  263. case ',':
  264. return new String(".-.-");
  265. case '.':
  266. return new String("---.");
  267. case '?':
  268. return new String("----");
  269.  
  270. }
  271.  
  272. return new String();
  273. }
  274.  
  275. public static void main(String[] args) {
  276. String line;
  277. StringBuilder morse = new StringBuilder();
  278. StringBuilder lengths = new StringBuilder();
  279.  
  280. while (true) {
  281. try {
  282. line = br.readLine();
  283.  
  284. if (line == null) {
  285. break;
  286. }
  287.  
  288. for (int i = 0; i < line.length(); i++) {
  289. char c = line.charAt(i);
  290.  
  291. String encoded = fs.encode(c);
  292. morse.append(encoded);
  293. lengths.append(encoded.length());
  294. }
  295.  
  296. lengths = lengths.reverse();
  297.  
  298. System.out.println(fs.decode(morse.toString(), lengths.toString()));
  299.  
  300. } catch (IOException ex) {
  301. Logger.getLogger(fs.class.getName()).log(Level.SEVERE, null, ex);
  302. }
  303. }
  304. }
  305. }
  306.  

Diff to submission s820

fs.java

--- c5.s820.cteam005.fs.java.0.fs.java
+++ c5.s857.cteam005.fs.java.0.fs.java
@@ -7,115 +7,204 @@
 
 public class fs {
-    
-    public static String decodeMorse(String morse) {        
-        if(morse.equals(".-"))
-            return new String ("A");
 
-        if(morse.equals("-..."))
-            return new String ("B");
-        
-        if(morse.equals("-.-."))
-            return new String ("C");
-        
-        if(morse.equals("-.."))
-            return new String("D");
-        
-        if(morse.equals("."))
-            return new String("E");
-        
-        if(morse.equals("..-."))
-            return new String("F");
-        
-        if(morse.equals("--."))
-            return new String("G");
-        
-        if(morse.equals("...."))
-            return new String("H");
-        
-        if(morse.equals(".--."))
-            return new String("P");
-        
-        if(morse.equals(".."))
-            return new String("I");
-        
-        if(morse.equals(".---"))
-            return new String("J");
-        
-        if(morse.equals("-.-"))
-            return new String("K");
-        
-        if(morse.equals(".-.."))
-            return new String("L");
-        
-        if(morse.equals("--"))
-            return new String("M");
-        
-        if(morse.equals("-."))
-            return new String("N");
-        
-        if(morse.equals("---"))
-            return new String("O");
-        
-        if(morse.equals("--.-"))
-            return new String("Q");
-        
-        if(morse.equals(".-."))
-            return new String("R");
-        
-        if(morse.equals("..."))
-            return new String("S");
-        
-        if(morse.equals("-"))
-            return new String("T");
-        
-        if(morse.equals("..-"))
-            return new String("U");
-        
-        if(morse.equals("...-"))
-            return new String("V");
-        
-        if(morse.equals(".--"))
-            return new String("W");
-        
-        if(morse.equals("-..-"))
-            return new String("X");
-        
-        if(morse.equals("-.--"))
-            return new String("Y");
-        
-        if(morse.equals("--.."))
-            return new String("Z");
-        
-        if(morse.equals("..--"))
-            return new String("_");
-        
-        if(morse.equals(".-.-"))
-            return new String(",");
-        
-        if(morse.equals("---."))
-            return new String(".");
-        
-        if(morse.equals("----"))
-            return new String("?");
-        
-        return new String();
+    public static String decodeMorse(String morse) {
+
+        if (morse.charAt(0) == '.') {
+            if (morse.length() == 1) {
+                return "E";
+            }
+
+            if (morse.charAt(1) == '.') {
+                if (morse.length() == 2) {
+                    return "I";
+                }
+
+                if (morse.charAt(2) == '.') {
+                    if (morse.length() == 3) {
+                        return "S";
+                    }
+
+                    if (morse.charAt(3) == '.') {
+                        return "H";
+                    } else {
+                        return "V";
+                    }
+                } else {
+                    if (morse.length() == 3) {
+                        return "U";
+                    }
+                    
+                    if (morse.charAt(3) == '.') {
+                        return "F";
+                    } else {
+                        return "_";
+                    } 
+                }
+            } else {
+                if (morse.length() == 2) {
+                    return "A";
+                }
+
+                if (morse.charAt(2) == '.') {
+                    if (morse.length() == 3) {
+                        return "R";
+                    }
+
+                    if (morse.charAt(3) == '.') {
+                        return "L";
+                    } else {
+                        return ",";
+                    }
+                } else {
+                    if (morse.length() == 3) {
+                        return "W";
+                    }
+                    
+                    if (morse.charAt(3) == '.') {
+                        return "P";
+                    } else {
+                        return "J";
+                    } 
+                }
+            }
+        } else {
+            if (morse.length() == 1) {
+                return "T";
+            }
+            
+            if (morse.charAt(1) == '.') {
+                if (morse.length() == 2) {
+                    return "N";
+                }
+
+                if (morse.charAt(2) == '.') {
+                    if (morse.length() == 3) {
+                        return "D";
+                    }
+
+                    if (morse.charAt(3) == '.') {
+                        return "B";
+                    } else {
+                        return "X";
+                    }
+                } else {
+                    if (morse.length() == 3) {
+                        return "K";
+                    }
+                    
+                    if (morse.charAt(3) == '.') {
+                        return "C";
+                    } else {
+                        return "Y";
+                    } 
+                }
+            } else {
+                if (morse.length() == 2) {
+                    return "M";
+                }
+
+                if (morse.charAt(2) == '.') {
+                    if (morse.length() == 3) {
+                        return "G";
+                    }
+
+                    if (morse.charAt(3) == '.') {
+                        return "Z";
+                    } else {
+                        return "Q";
+                    }
+                } else {
+                    if (morse.length() == 3) {
+                        return "O";
+                    }
+                    
+                    if (morse.charAt(3) == '.') {
+                        return ".";
+                    } else {
+                        return "?";
+                    } 
+                }
+            }
+        }
+
+    /*if(morse.equals(".-"))
+    return new String ("A");
+    if(morse.equals("-..."))
+    return new String ("B");
+    if(morse.equals("-.-."))
+    return new String ("C");
+    if(morse.equals("-.."))
+    return new String("D");
+    if(morse.equals("."))
+    return new String("E");
+    if(morse.equals("..-."))
+    return new String("F");
+    if(morse.equals("--."))
+    return new String("G");
+    if(morse.equals("...."))
+    return new String("H");
+    if(morse.equals(".--."))
+    return new String("P");
+    if(morse.equals(".."))
+    return new String("I");
+    if(morse.equals(".---"))
+    return new String("J");
+    if(morse.equals("-.-"))
+    return new String("K");
+    if(morse.equals(".-.."))
+    return new String("L");
+    if(morse.equals("--"))
+    return new String("M");
+    if(morse.equals("-."))
+    return new String("N");
+    if(morse.equals("---"))
+    return new String("O");
+    if(morse.equals("--.-"))
+    return new String("Q");
+    if(morse.equals(".-."))
+    return new String("R");
+    if(morse.equals("..."))
+    return new String("S");
+    if(morse.equals("-"))
+    return new String("T");
+    if(morse.equals("..-"))
+    return new String("U");
+    if(morse.equals("...-"))
+    return new String("V");
+    if(morse.equals(".--"))
+    return new String("W");
+    if(morse.equals("-..-"))
+    return new String("X");
+    if(morse.equals("-.--"))
+    return new String("Y");
+    if(morse.equals("--.."))
+    return new String("Z");
+    if(morse.equals("..--"))
+    return new String("_");
+    if(morse.equals(".-.-"))
+    return new String(",");
+    if(morse.equals("---."))
+    return new String(".");
+    if(morse.equals("----"))
+    return new String("?");
+    return new String();*/
     }
-    
+
     public static String decode(String morse, String lengths) {
         StringBuilder ret = new StringBuilder();
         int currLen = 0;
-        
-        for(int i = 0; i < lengths.length(); i++) {
+
+        for (int i = 0; i < lengths.length(); i++) {
             currLen = Integer.parseInt("" + lengths.charAt(i));
-            
+
             ret.append(fs.decodeMorse(morse.substring(0, currLen)));
             morse = morse.substring(currLen, morse.length());
         }
-        
+
         return ret.toString();
     }
-    
+
     public static String encode(char c) {
-        switch(c) {
+        switch (c) {
             case 'A':
                 return new String(".-");
@@ -178,10 +267,10 @@
             case '?':
                 return new String("----");
-                
+
         }
-        
+
         return new String();
     }
-    
+
     public static void main(String[] args) {
         InputStreamReader is = new InputStreamReader(System.in);
@@ -191,5 +280,5 @@
         StringBuilder lengths = new StringBuilder();
 
-        while(true) {
+        while (true) {
             try {
                 line = br.readLine();
@@ -206,9 +295,9 @@
                     lengths.append(encoded.length());
                 }
-                
+
                 lengths = lengths.reverse();
-                    
+
                 System.out.println(fs.decode(morse.toString(), lengths.toString()));
-                
+
             } catch (IOException ex) {
                 Logger.getLogger(fs.class.getName()).log(Level.SEVERE, null, ex);