Advertisement
Guest User

Untitled

a guest
Jul 19th, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.52 KB | None | 0 0
  1. package hello;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. public class Challenge {
  7.  
  8.     public static List<String> possibilities(String word) {
  9.  
  10.         String morse = (String) word;
  11.         List<Character> input = new ArrayList<Character>();
  12.         for (int i = 0; i < morse.length(); i++) {
  13.             input.add(morse.charAt(i));
  14.         }
  15.  
  16.         char letters[] = { 'X', 'E', 'T', 'I', 'A', 'N', 'M', 'S', 'U', 'R', 'W', 'D', 'K', 'G', 'O' };
  17.  
  18.         List<String> result = new ArrayList<String>();
  19.         int ipLength = input.size();
  20.  
  21.         if (ipLength == 3) {
  22.             // add the last level to the resulting list
  23.             for (int i = 7; i < 15; i++) {
  24.                 result.add(Character.toString(letters[i]));
  25.             }
  26.  
  27.             // check the last input and remove even/odd children according to dot or dash
  28.             if (input.get(2) == '.') {
  29.                 for (int j = 0; j < 8; j += 2) {
  30.                     result.remove(j);
  31.                 }
  32.  
  33.             } else if (input.get(2) == '-') {
  34.                 for (int j = 1; j < 8; j += 2) {
  35.                     result.remove(j);
  36.                 }
  37.             } else if (input.get(2) == '?') {
  38.                 if (input.get(1) == '.') {
  39.                     result.remove(2);
  40.                     result.remove(3);
  41.  
  42.                     result.remove(6);
  43.                     result.remove(7);
  44.  
  45.                     // we're now left with 4 elements
  46.  
  47.                     if (input.get(0) == '.') {
  48.                         result.remove(2);
  49.                         result.remove(3);
  50.                     } else if (input.get(0) == '-') {
  51.                         result.remove(0);
  52.                         result.remove(1);
  53.                     }
  54.                 } else if (input.get(1) == '-') {
  55.                     result.remove(0);
  56.                     result.remove(1);
  57.  
  58.                     result.remove(4);
  59.                     result.remove(5);
  60.  
  61.                     if (input.get(0) == '.') {
  62.                         result.remove(2);
  63.                         result.remove(3);
  64.                     } else if (input.get(0) == '-') {
  65.                         result.remove(0);
  66.                         result.remove(1);
  67.                     }
  68.                 } else if (input.get(1) == '?') {
  69.                     if (input.get(0) == '.') {
  70.                         result.remove(4);
  71.                         result.remove(5);
  72.                         result.remove(6);
  73.                         result.remove(7);
  74.                     } else if (input.get(0) == '-') {
  75.                         result.remove(0);
  76.                         result.remove(1);
  77.                         result.remove(2);
  78.                         result.remove(3);
  79.                     }
  80.                 }
  81.  
  82.             }
  83.  
  84.             // check the second input and remove grandchildren according to dot or dash
  85.             if (input.get(2) == '-' || input.get(2) == '.') {
  86.                 if (input.get(1) == '.') {
  87.                     result.remove(1);
  88.                     result.remove(3);
  89.  
  90.                     if (input.get(0) == '.') {
  91.                         result.remove(1);
  92.                     } else if (input.get(0) == '-') {
  93.                         result.remove(0);
  94.                     }
  95.                 } else if (input.get(1) == '-') {
  96.                     result.remove(0);
  97.                     result.remove(2);
  98.  
  99.                     if (input.get(0) == '.') {
  100.                         result.remove(1);
  101.                     } else if (input.get(0) == '-') {
  102.                         result.remove(0);
  103.                     }
  104.                 }
  105.             }
  106.  
  107.         } else if (ipLength == 2) {
  108.             result.add("I");
  109.             result.add("A");
  110.             result.add("N");
  111.             result.add("M");
  112.  
  113.             if (input.get(1) == '.') {
  114.                 result.remove(1);
  115.                 result.remove(3);
  116.  
  117.                 if (input.get(0) == '.') {
  118.                     result.remove(1);
  119.                 } else if (input.get(0) == '-') {
  120.                     result.remove(0);
  121.                 }
  122.  
  123.             } else if (input.get(1) == '-') {
  124.                 result.remove(0);
  125.                 result.remove(2);
  126.  
  127.                 if (input.get(0) == '.') {
  128.                     result.remove(1);
  129.                 } else if (input.get(0) == '-') {
  130.                     result.remove(0);
  131.                 }
  132.             } else if (input.get(1) == '?') {
  133.                 if (input.get(0) == '.') {
  134.                     result.remove(2);
  135.                     result.remove(3);
  136.                 } else if (input.get(0) == '-') {
  137.                     result.remove(0);
  138.                     result.remove(1);
  139.                 }
  140.             }
  141.  
  142.         } else if (ipLength == 1) {
  143.  
  144.             if (input.get(0) == '.') {
  145.                 result.add("E");
  146.             } else if (input.get(0) == '-') {
  147.                 result.add("T");
  148.             } else {
  149.                 result.add("E");
  150.                 result.add("T");
  151.             }
  152.         }
  153.  
  154.         return result;
  155.     }
  156. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement