fs.java
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.equals(".-"))
ret = "A";
if(morse.equals("-..."))
ret = "B";
if(morse.equals("-.-."))
ret = "C";
if(morse.equals("-.."))
ret = "D";
if(morse.equals("."))
ret = "E";
if(morse.equals("..-."))
ret = "F";
if(morse.equals("--."))
ret = "G";
if(morse.equals("...."))
ret = "H";
if(morse.equals(".--."))
ret = "P";
if(morse.equals(".."))
ret = "I";
if(morse.equals(".---"))
ret = "J";
if(morse.equals("-.-"))
ret = "K";
if(morse.equals(".-.."))
ret = "L";
if(morse.equals("--"))
ret = "M";
if(morse.equals("-."))
ret = "N";
if(morse.equals("---"))
ret = "O";
if(morse.equals("--.-"))
ret = "Q";
if(morse.equals(".-."))
ret = "R";
if(morse.equals("..."))
ret = "S";
if(morse.equals("-"))
ret = "T";
if(morse.equals("..-"))
ret = "U";
if(morse.equals("...-"))
ret = "V";
if(morse.equals(".--"))
ret = "W";
if(morse.equals("-..-"))
ret = "X";
if(morse.equals("-.--"))
ret = "Y";
if(morse.equals("--.."))
ret = "Z";
if(morse.equals("..--"))
ret = "_";
if(morse.equals(".-.-"))
ret = ",";
if(morse.equals("---."))
ret = ".";
if(morse.equals("----"))
ret = "?";
return ret;
}
StringBuilder ret = new StringBuilder();
int currLen = 0;
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) {
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 '?':
}
}
public static void main
(String[] args
) { 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);
String encoded
= fs.
encode(c
); morse.append(encoded);
lengths.append(encoded.length());
}
lengths = lengths.reverse();
System.
out.
println(fs.
decode(morse.
toString(), lengths.
toString()));
Logger.getLogger(fs.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}