Fs.java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
class Fs {
static HashMap
<Character, String
> mapa
= new HashMap
<>(); static HashMap
<String, Character
> mapaZpet
= new HashMap
<>(); static HashMap
<Character, Integer
> mapaDelka
= new HashMap
<>(); /**
* @param args
* @throws IOException
*/
// System.out.println(Integer.valueOf('Z'));
mapaDelka.put('A', 2);
mapaDelka.put('B', 4);
mapaDelka.put('C', 4);
mapaDelka.put('D', 3);
mapaDelka.put('E', 1);
mapaDelka.put('F', 4);
mapaDelka.put('G', 3);
mapaDelka.put('H', 4);
mapaDelka.put('I', 2);
mapaDelka.put('J', 4);
mapaDelka.put('K', 3);
mapaDelka.put('L', 4);
mapaDelka.put('M', 2);
mapaDelka.put('N', 2);
mapaDelka.put('O', 3);
mapaDelka.put('P', 4);
mapaDelka.put('Q', 4);
mapaDelka.put('R', 3);
mapaDelka.put('S', 3);
mapaDelka.put('T', 1);
mapaDelka.put('U', 3);
mapaDelka.put('V', 4);
mapaDelka.put('W', 3);
mapaDelka.put('X', 4);
mapaDelka.put('Y', 4);
mapaDelka.put('Z', 4);
mapaDelka.put('_', 4);
mapaDelka.put(',', 4);
mapaDelka.put('.', 4);
mapaDelka.put('?', 4);
mapa.put('A', ".-");
mapa.put('B', "-...");
mapa.put('C', "-.-.");
mapa.put('D', "-..");
mapa.put('E', ".");
mapa.put('F', "..-.");
mapa.put('G', "--.");
mapa.put('H', "....");
mapa.put('I', "..");
mapa.put('J', ".---");
mapa.put('K', "-.-");
mapa.put('L', ".-..");
mapa.put('M', "--");
mapa.put('N', "-.");
mapa.put('O', "---");
mapa.put('P', ".--.");
mapa.put('Q', "--.-");
mapa.put('R', ".-.");
mapa.put('S', "...");
mapa.put('T', "-");
mapa.put('U', "..-");
mapa.put('V', "...-");
mapa.put('W', ".--");
mapa.put('X', "-..-");
mapa.put('Y', "-.--");
mapa.put('Z', "--..");
mapa.put('_', "..--");
mapa.put(',', ".-.-");
mapa.put('.', "---.");
mapa.put('?', "----");
mapaZpet.put(".-",'A');
mapaZpet.put("-...",'B');
mapaZpet.put("-.-.",'C');
mapaZpet.put("-..",'D');
mapaZpet.put(".",'E');
mapaZpet.put("..-.",'F');
mapaZpet.put("--.",'G');
mapaZpet.put("....",'H');
mapaZpet.put("..",'I');
mapaZpet.put(".---",'J');
mapaZpet.put("-.-",'K');
mapaZpet.put(".-..",'L');
mapaZpet.put("--",'M');
mapaZpet.put("-.",'N');
mapaZpet.put("---",'O');
mapaZpet.put(".--.",'P');
mapaZpet.put("--.-",'Q');
mapaZpet.put(".-.",'R');
mapaZpet.put("...",'S');
mapaZpet.put("-",'T');
mapaZpet.put("..-",'U');
mapaZpet.put("...-",'V');
mapaZpet.put(".--",'W');
mapaZpet.put("-..-",'X');
mapaZpet.put("-.--",'Y');
mapaZpet.put("--..",'Z');
mapaZpet.put("..--",'_');
mapaZpet.put(".-.-",',');
mapaZpet.put("---.",'.');
mapaZpet.put("----",'?');
while((line = in.readLine()) != null){
if(line.equals("")) break;
System.
out.
println(zpracuj
(line
)); }
}
int znakZepredu = 0;
int znakZezadu = line.length()-1;
int delkaZezadu = 0;
int delkaZepredu = 0;
while(!(znakZepredu < 0) && (znakZezadu >= 0 )){
delkaZezadu = mapaDelka.get(line.charAt(znakZezadu));
while(true){
if(delkaZepredu >= delkaZezadu){
znakZezadu--;
prevadenyKod = aktualniKod.substring(0, delkaZezadu);
aktualniKod = aktualniKod.substring(delkaZezadu);
vysledek += mapaZpet.get(prevadenyKod);
delkaZepredu -= delkaZezadu;
delkaZezadu = 0;
break;
}
else{
delkaZepredu += mapaDelka.get(line.charAt(znakZepredu));
aktualniKod = aktualniKod + mapa.get(line.charAt(znakZepredu));
znakZepredu++;
}
}
}
return vysledek;
}
}