Go to diff to previous submission
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.logging.Level; import java.util.logging.Logger; public class fs { 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();*/ } StringBuilder ret = new StringBuilder(); int currLen = 0; for (int i = 0; i < lengths.length(); i++) { ret.append(fs.decodeMorse(morse.substring(0, currLen))); morse = morse.substring(currLen, morse.length()); } return ret.toString(); } switch (c) { case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case ',': case '.': case '?': } } String line; StringBuilder morse = new StringBuilder(); StringBuilder lengths = new StringBuilder(); while (true) { try { line = br.readLine(); if (line == null) { break; } for (int i = 0; i < line.length(); i++) { char c = line.charAt(i); morse.append(encoded); lengths.append(encoded.length()); } lengths = lengths.reverse(); Logger.getLogger(fs.class.getName()).log(Level.SEVERE, null, ex); } } } }
--- 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);