Source code for submission s682

FS.java

  1.  
  2. package acm;
  3.  
  4. import java.util.ArrayList;
  5. import java.util.Scanner;
  6.  
  7. /**
  8.  *
  9.  * @author dusenka
  10.  */
  11. public class FS {
  12. public FS(){
  13. }
  14.  
  15. public String toLetter(String letter){
  16. if(letter.equalsIgnoreCase(".-")){
  17. return "A";
  18. }
  19. else if(letter.equalsIgnoreCase("-...")){
  20. return "B";
  21. }
  22. else if(letter.equalsIgnoreCase("-.-.")){
  23. return "C";
  24. }
  25. else if(letter.equalsIgnoreCase("-..")){
  26. return "D";
  27. }
  28. else if(letter.equalsIgnoreCase(".")){
  29. return "E";
  30. }
  31. else if(letter.equalsIgnoreCase("..-.")){
  32. return "F";
  33. }
  34. else if(letter.equalsIgnoreCase("--.")){
  35. return "G";
  36. }
  37. else if(letter.equalsIgnoreCase("....")){
  38. return "H";
  39. }
  40. else if(letter.equalsIgnoreCase("..")){
  41. return "I";
  42. }
  43. else if(letter.equalsIgnoreCase(".---")){
  44. return "J";
  45. }
  46. else if(letter.equalsIgnoreCase("-.-")){
  47. return "K";
  48. }
  49. else if(letter.equalsIgnoreCase(".-..")){
  50. return "L";
  51. }
  52. else if(letter.equalsIgnoreCase("--")){
  53. return "M";
  54. }
  55. else if(letter.equalsIgnoreCase("-.")){
  56. return "N";
  57. }
  58. else if(letter.equalsIgnoreCase("---")){
  59. return "O";
  60. }
  61. else if(letter.equalsIgnoreCase(".--.")){
  62. return "P";
  63. }
  64. else if(letter.equalsIgnoreCase("--.-")){
  65. return "Q";
  66. }
  67. else if(letter.equalsIgnoreCase(".-.")){
  68. return "R";
  69. }
  70. else if(letter.equalsIgnoreCase("...")){
  71. return "S";
  72. }
  73. else if(letter.equalsIgnoreCase("-")){
  74. return "T";
  75. }
  76. else if(letter.equalsIgnoreCase("..-")){
  77. return "U";
  78. }
  79. else if(letter.equalsIgnoreCase("...-")){
  80. return "V";
  81. }
  82. else if(letter.equalsIgnoreCase(".--")){
  83. return "W";
  84. }
  85. else if(letter.equalsIgnoreCase("-..-")){
  86. return "X";
  87. }
  88. else if(letter.equalsIgnoreCase("-.--")){
  89. return "Y";
  90. }
  91. else if(letter.equalsIgnoreCase("--..")){
  92. return "Z";
  93. }
  94. else if(letter.equalsIgnoreCase("..--")){
  95. return "_";
  96. }
  97. else if(letter.equalsIgnoreCase(".-.-")){
  98. return ",";
  99. }
  100. else if(letter.equalsIgnoreCase("---.")){
  101. return ".";
  102. }
  103. else if(letter.equalsIgnoreCase("----")){
  104. return "?";
  105. }
  106. return "";
  107. }
  108. public String toMorse(String letter){
  109. if(letter.equalsIgnoreCase("A")){
  110. return ".-";
  111. }
  112. else if(letter.equalsIgnoreCase("B")){
  113. return "-...";
  114. }
  115. else if(letter.equalsIgnoreCase("C")){
  116. return "-.-.";
  117. }
  118. else if(letter.equalsIgnoreCase("D")){
  119. return "-..";
  120. }
  121. else if(letter.equalsIgnoreCase("E")){
  122. return ".";
  123. }
  124. else if(letter.equalsIgnoreCase("F")){
  125. return "..-.";
  126. }
  127. else if(letter.equalsIgnoreCase("G")){
  128. return "--.";
  129. }
  130. else if(letter.equalsIgnoreCase("H")){
  131. return "....";
  132. }
  133. else if(letter.equalsIgnoreCase("I")){
  134. return "..";
  135. }
  136. else if(letter.equalsIgnoreCase("J")){
  137. return ".---";
  138. }
  139. else if(letter.equalsIgnoreCase("K")){
  140. return "-.-";
  141. }
  142. else if(letter.equalsIgnoreCase("L")){
  143. return ".-..";
  144. }
  145. else if(letter.equalsIgnoreCase("M")){
  146. return "--";
  147. }
  148. else if(letter.equalsIgnoreCase("N")){
  149. return "-.";
  150. }
  151. else if(letter.equalsIgnoreCase("O")){
  152. return "---";
  153. }
  154. else if(letter.equalsIgnoreCase("P")){
  155. return ".--.";
  156. }
  157. else if(letter.equalsIgnoreCase("Q")){
  158. return "--.-";
  159. }
  160. else if(letter.equalsIgnoreCase("R")){
  161. return ".-.";
  162. }
  163. else if(letter.equalsIgnoreCase("S")){
  164. return "...";
  165. }
  166. else if(letter.equalsIgnoreCase("T")){
  167. return "-";
  168. }
  169. else if(letter.equalsIgnoreCase("U")){
  170. return "..-";
  171. }
  172. else if(letter.equalsIgnoreCase("V")){
  173. return "...-";
  174. }
  175. else if(letter.equalsIgnoreCase("W")){
  176. return ".--";
  177. }
  178. else if(letter.equalsIgnoreCase("X")){
  179. return "-..-";
  180. }
  181. else if(letter.equalsIgnoreCase("Y")){
  182. return "-.--";
  183. }
  184. else if(letter.equalsIgnoreCase("Z")){
  185. return "--..";
  186. }
  187. else if(letter.equalsIgnoreCase("_")){
  188. return "..--";
  189. }
  190. else if(letter.equalsIgnoreCase(",")){
  191. return ".-.-";
  192. }
  193. else if(letter.equalsIgnoreCase(".")){
  194. return "---.";
  195. }
  196. else if(letter.equalsIgnoreCase("?")){
  197. return "----";
  198. }
  199. return "";
  200. }
  201. public static void main(String args[]){
  202. ArrayList <String> al = new ArrayList<String>();
  203.  
  204. Scanner sc = new Scanner(System.in);
  205. boolean run = true;
  206. FS f = new FS();
  207.  
  208. String vstup;
  209. // String temp[];
  210. int [] arr;
  211. //--------
  212. // while(run=true){
  213.  
  214. // vstup = sc.nextLine();
  215. String actLetter;
  216. String line="";
  217. while (sc.hasNextLine()){
  218. vstup = sc.nextLine();
  219. line="";
  220. actLetter = "";
  221. arr = new int[vstup.length()];
  222. for (int i=0;i<vstup.length();i++){
  223. actLetter = f.toMorse(vstup.charAt(i)+"");
  224. line += actLetter;
  225. arr[i]=actLetter.length();
  226. // al.add(s);
  227. // System.out.println(arr[i]+"="+actLetter);
  228. }
  229. // System.out.println(vstup.substring(0, 5));
  230. String newWord ="";
  231. int actIndex=0;
  232. for(int j=(vstup.length()-1);j>=0;j--){
  233.  
  234. actLetter = line.substring(actIndex,(actIndex+ arr[j]));
  235. newWord += f.toLetter(actLetter);
  236. // System.out.println(actLetter);
  237. actIndex = actIndex + arr[j];
  238. }
  239.  
  240. System.out.println(newWord);
  241. }
  242.  
  243. }
  244. }
  245.