Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package hello;
- import java.util.ArrayList;
- import java.util.List;
- public class Challenge {
- public static List<String> possibilities(String word) {
- String morse = (String) word;
- List<Character> input = new ArrayList<Character>();
- for (int i = 0; i < morse.length(); i++) {
- input.add(morse.charAt(i));
- }
- char letters[] = { 'X', 'E', 'T', 'I', 'A', 'N', 'M', 'S', 'U', 'R', 'W', 'D', 'K', 'G', 'O' };
- List<String> result = new ArrayList<String>();
- int ipLength = input.size();
- if (ipLength == 3) {
- // add the last level to the resulting list
- for (int i = 7; i < 15; i++) {
- result.add(Character.toString(letters[i]));
- }
- // check the last input and remove even/odd children according to dot or dash
- if (input.get(2) == '.') {
- for (int j = 0; j < 8; j += 2) {
- result.remove(j);
- }
- } else if (input.get(2) == '-') {
- for (int j = 1; j < 8; j += 2) {
- result.remove(j);
- }
- } else if (input.get(2) == '?') {
- if (input.get(1) == '.') {
- result.remove(2);
- result.remove(3);
- result.remove(6);
- result.remove(7);
- // we're now left with 4 elements
- if (input.get(0) == '.') {
- result.remove(2);
- result.remove(3);
- } else if (input.get(0) == '-') {
- result.remove(0);
- result.remove(1);
- }
- } else if (input.get(1) == '-') {
- result.remove(0);
- result.remove(1);
- result.remove(4);
- result.remove(5);
- if (input.get(0) == '.') {
- result.remove(2);
- result.remove(3);
- } else if (input.get(0) == '-') {
- result.remove(0);
- result.remove(1);
- }
- } else if (input.get(1) == '?') {
- if (input.get(0) == '.') {
- result.remove(4);
- result.remove(5);
- result.remove(6);
- result.remove(7);
- } else if (input.get(0) == '-') {
- result.remove(0);
- result.remove(1);
- result.remove(2);
- result.remove(3);
- }
- }
- }
- // check the second input and remove grandchildren according to dot or dash
- if (input.get(2) == '-' || input.get(2) == '.') {
- if (input.get(1) == '.') {
- result.remove(1);
- result.remove(3);
- if (input.get(0) == '.') {
- result.remove(1);
- } else if (input.get(0) == '-') {
- result.remove(0);
- }
- } else if (input.get(1) == '-') {
- result.remove(0);
- result.remove(2);
- if (input.get(0) == '.') {
- result.remove(1);
- } else if (input.get(0) == '-') {
- result.remove(0);
- }
- }
- }
- } else if (ipLength == 2) {
- result.add("I");
- result.add("A");
- result.add("N");
- result.add("M");
- if (input.get(1) == '.') {
- result.remove(1);
- result.remove(3);
- if (input.get(0) == '.') {
- result.remove(1);
- } else if (input.get(0) == '-') {
- result.remove(0);
- }
- } else if (input.get(1) == '-') {
- result.remove(0);
- result.remove(2);
- if (input.get(0) == '.') {
- result.remove(1);
- } else if (input.get(0) == '-') {
- result.remove(0);
- }
- } else if (input.get(1) == '?') {
- if (input.get(0) == '.') {
- result.remove(2);
- result.remove(3);
- } else if (input.get(0) == '-') {
- result.remove(0);
- result.remove(1);
- }
- }
- } else if (ipLength == 1) {
- if (input.get(0) == '.') {
- result.add("E");
- } else if (input.get(0) == '-') {
- result.add("T");
- } else {
- result.add("E");
- result.add("T");
- }
- }
- return result;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement