Advertisement
dermetfan

IF Q1 - Morse

Sep 1st, 2014
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.07 KB | None | 0 0
  1. import provided.BinaryTree;
  2.  
  3. public class Morse {
  4.    
  5.     static final BinaryTree tree;
  6.    
  7.     static {
  8.         BinaryTree h = new BinaryTree("h");
  9.         BinaryTree v = new BinaryTree("v");
  10.         BinaryTree f = new BinaryTree("f");
  11.         BinaryTree ü = new BinaryTree ("ü");
  12.         BinaryTree l = new BinaryTree ("l");
  13.         BinaryTree ä = new BinaryTree ("ä");
  14.         BinaryTree p = new BinaryTree ("p");
  15.         BinaryTree j = new BinaryTree ("j");
  16.         BinaryTree b = new BinaryTree ("b");
  17.         BinaryTree x = new BinaryTree ("x");
  18.         BinaryTree c = new BinaryTree ("c");
  19.         BinaryTree y = new BinaryTree ("y");
  20.         BinaryTree z = new BinaryTree ("z");
  21.         BinaryTree q = new BinaryTree ("q");
  22.         BinaryTree ö = new BinaryTree ("ö");
  23.         BinaryTree ch = new BinaryTree ("ch");
  24.         BinaryTree s = new BinaryTree ("s", h, v);
  25.         BinaryTree u = new BinaryTree ("u", f, ü);
  26.         BinaryTree r = new BinaryTree ("r", l, ä);
  27.         BinaryTree w = new BinaryTree ("w", p, j);
  28.         BinaryTree d = new BinaryTree ("d", b, x);
  29.         BinaryTree k = new BinaryTree ("k", c, y);
  30.         BinaryTree g = new BinaryTree ("g", z, q);
  31.         BinaryTree o = new BinaryTree ("o", ö, ch);
  32.         BinaryTree i = new BinaryTree ("i", s, u);
  33.         BinaryTree a = new BinaryTree ("a", r, w);
  34.         BinaryTree n = new BinaryTree ("n", d, k);
  35.         BinaryTree m = new BinaryTree ("m", g, o);
  36.         BinaryTree e = new BinaryTree ("e", i, a);
  37.         BinaryTree t = new BinaryTree ("t", n, m);
  38.         tree = new BinaryTree(" ", e, t);
  39.     }
  40.    
  41.     public static String encode(String code) {
  42.         String encoded = "";
  43.         return encoded;
  44.     }
  45.    
  46.     public static String decode(String code) {
  47.         String decoded = "";
  48.         BinaryTree node = tree;
  49.         for(int i = 0; i < code.length() - 1; i++) {
  50.             char c = code.charAt(i);
  51.             if(c == ' ') {
  52.                 decoded += c;
  53.                 continue;
  54.             }
  55.             BinaryTree child = c == '-' ? node.getRightTree() : c == '.' ? node.getLeftTree() : null;
  56.             if(child != null)
  57.                 node = child;
  58.             else
  59.                 break;
  60.             if(node.getObject() != null)
  61.                 decoded += node.getObject();
  62.         }
  63.         return decoded;
  64.     }
  65.    
  66.     public static void main(String[] args) {
  67.     String usage = "Usage: <main> [encode/decode] <input>";
  68.     if(args.length < 1) {
  69.         System.out.println(usage);
  70.         return;
  71.     }
  72.         for(int i = 0; i < args.length; i++) {
  73.             switch(args[i]) {
  74.                 case "--encode":
  75.                 case "-e":
  76.                     System.out.println(encode(args[i + 1]));
  77.                     break;
  78.                 case "--decode":
  79.                 case "-d":
  80.                     System.out.println(decode(args[i + 1]));
  81.                     break;
  82.                 case "--help":
  83.                 case "-h":
  84.                 case "-?":
  85.                     System.out.println(usage);
  86.             }
  87.         }
  88.     }
  89.    
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement