rendered paste body/** * */import java.io.File;import java.io.FileNotFoundException;import java.util.ArrayList;import java.util.Scanner;/** * @author Brian * */public class ELIC{ static ArrayList<String> eight = new ArrayList<String>(); static ArrayList<String> five = new ArrayList<String>(); static ArrayList<String> four = new ArrayList<String>(); static String input = "732559"; static ArrayList<String> nine = new ArrayList<String>(); static ArrayList<String> seven = new ArrayList<String>(); static ArrayList<String> six = new ArrayList<String>(); static ArrayList<String> three = new ArrayList<String>(); static ArrayList<String> two = new ArrayList<String>(); public static boolean findWord(final int k, final String prefix) { if (k < input.length()) { if (input.substring(k, k + 1).equals("2")) { for (int z = 0; z < two.size(); z++) { if (two.get(z).startsWith(prefix + "a")) { if (two.get(z).equals(prefix + "a")) { System.out.println(prefix + "a"); if (k < input.length()) { if (k < input.length()) { findWord(k + 1, ""); } } } if (findWord(k + 1, prefix + "a")) { return true; } } if (two.get(z).startsWith(prefix + "b")) { if (two.get(z).equals(prefix + "b")) { System.out.println(prefix + "b"); if (k < input.length()) { findWord(k + 1, ""); } } if (findWord(k + 1, prefix + "b")) { return true; } } if (two.get(z).startsWith(prefix + "c")) { if (two.get(z).equals(prefix + "c")) { System.out.println(prefix + "c"); if (k < input.length()) { findWord(k + 1, ""); } } if (findWord(k + 1, prefix + "c")) { return true; } } } // abc; } else if (input.substring(k, k + 1).equals("3")) { for (int z = 0; z < three.size(); z++) { if (three.get(z).startsWith(prefix + "d")) { if (three.get(z).equals(prefix + "d")) { System.out.println(prefix + "d"); if (k < input.length()) { findWord(k + 1, ""); } } if (findWord(k + 1, prefix + "d")) { return true; } } if (three.get(z).startsWith(prefix + "e")) { if (three.get(z).equals(prefix + "e")) { System.out.println(prefix + "e"); if (k < input.length()) { findWord(k + 1, ""); } } if (findWord(k + 1, prefix + "e")) { return true; } } if (three.get(z).startsWith(prefix + "f")) { if (three.get(z).equals(prefix + "f")) { System.out.println(prefix + "f"); if (k < input.length()) { findWord(k + 1, ""); } } if (findWord(k + 1, prefix + "f")) { return true; } } } // def; } else if (input.substring(k, k + 1).equals("4")) { for (int z = 0; z < four.size(); z++) { if (four.get(z).startsWith(prefix + "g")) { if (four.get(z).equals(prefix + "g")) { System.out.println(prefix + "g"); if (k < input.length()) { findWord(k + 1, ""); } } if (findWord(k + 1, prefix + "g")) { return true; } } if (four.get(z).startsWith(prefix + "h")) { if (four.get(z).equals(prefix + "h")) { System.out.println(prefix + "h"); if (k < input.length()) { findWord(k + 1, ""); } } if (findWord(k + 1, prefix + "h")) { return true; } } if (four.get(z).startsWith(prefix + "i")) { if (four.get(z).equals(prefix + "i")) { System.out.println(prefix + "i"); if (k < input.length()) { findWord(k + 1, ""); } } if (findWord(k + 1, prefix + "i")) { return true; } } } // ghi; } else if (input.substring(k, k + 1).equals("5")) { for (int z = 0; z < five.size(); z++) { if (five.get(z).startsWith(prefix + "j")) { if (five.get(z).equals(prefix + "j")) { System.out.println(prefix + "j"); if (k < input.length()) { findWord(k + 1, ""); } } if (findWord(k + 1, prefix + "j")) { return true; } } if (five.get(z).startsWith(prefix + "k")) { if (five.get(z).equals(prefix + "k")) { System.out.println(prefix + "k"); if (k < input.length()) { findWord(k + 1, ""); } } if (findWord(k + 1, prefix + "k")) { return true; } } if (five.get(z).startsWith(prefix + "l")) { if (five.get(z).equals(prefix + "l")) { System.out.println(prefix + "l"); if (k < input.length()) { findWord(k + 1, ""); } } if (findWord(k + 1, prefix + "l")) { return true; } } } // jkl; } else if (input.substring(k, k + 1).equals("6")) { for (int z = 0; z < six.size(); z++) { if (six.get(z).startsWith(prefix + "m")) { if (six.get(z).equals(prefix + "m")) { System.out.println(prefix + "m"); if (k < input.length()) { findWord(k + 1, ""); } } if (findWord(k + 1, prefix + "m")) { return true; } } if (six.get(z).startsWith(prefix + "n")) { if (six.get(z).equals(prefix + "n")) { System.out.println(prefix + "n"); if (k < input.length()) { findWord(k + 1, ""); } } if (findWord(k + 1, prefix + "n")) { return true; } } if (six.get(z).startsWith(prefix + "o")) { if (six.get(z).equals(prefix + "o")) { System.out.println(prefix + "o"); if (k < input.length()) { findWord(k + 1, ""); } } if (findWord(k + 1, prefix + "o")) { return true; } } } // mno; } else if (input.substring(k, k + 1).equals("7")) { for (int z = 0; z < seven.size(); z++) { if (seven.get(z).startsWith(prefix + "p")) { if (seven.get(z).equals(prefix + "p")) { System.out.println(prefix + "p"); if (k < input.length()) { findWord(k + 1, ""); } } if (findWord(k + 1, prefix + "p")) { return true; } } if (seven.get(z).startsWith(prefix + "q")) { if (seven.get(z).equals(prefix + "q")) { System.out.println(prefix + "q"); if (k < input.length()) { findWord(k + 1, ""); } } if (findWord(k + 1, prefix + "q")) { return true; } } if (seven.get(z).startsWith(prefix + "r")) { if (seven.get(z).equals(prefix + "r")) { System.out.println(prefix + "r"); if (k < input.length()) { findWord(k + 1, ""); } } if (findWord(k + 1, prefix + "r")) { return true; } } if (seven.get(z).startsWith(prefix + "s")) { if (seven.get(z).equals(prefix + "s")) { System.out.println(prefix + "s"); if (k < input.length()) { findWord(k + 1, ""); } } if (findWord(k + 1, prefix + "s")) { return true; } } } // pqrs; } else if (input.substring(k, k + 1).equals("8")) { for (int z = 0; z < eight.size(); z++) { if (eight.get(z).startsWith(prefix + "t")) { if (eight.get(z).equals(prefix + "t")) { System.out.println(prefix + "t"); if (k < input.length()) { findWord(k + 1, ""); } } if (findWord(k + 1, prefix + "t")) { return true; } } if (eight.get(z).startsWith(prefix + "u")) { if (eight.get(z).equals(prefix + "u")) { System.out.println(prefix + "u"); if (k < input.length()) { findWord(k + 1, ""); } } if (findWord(k + 1, prefix + "u")) { return true; } } if (eight.get(z).startsWith(prefix + "v")) { if (eight.get(z).equals(prefix + "v")) { System.out.println(prefix + "v"); if (k < input.length()) { findWord(k + 1, ""); } } if (findWord(k + 1, prefix + "v")) { return true; } } } // tuv; } else if (input.substring(k, k + 1).equals("9")) { for (int z = 0; z < nine.size(); z++) { if (nine.get(z).startsWith(prefix + "w")) { if (nine.get(z).equals(prefix + "w")) { System.out.println(prefix + "w"); if (k < input.length()) { findWord(k + 1, ""); } } if (findWord(k + 1, prefix + "w")) { return true; } } if (nine.get(z).startsWith(prefix + "x")) { if (nine.get(z).equals(prefix + "x")) { System.out.println(prefix + "x"); if (k < input.length()) { findWord(k + 1, ""); } } if (findWord(k + 1, prefix + "x")) { return true; } } if (nine.get(z).startsWith(prefix + "y")) { if (nine.get(z).equals(prefix + "y")) { System.out.println(prefix + "y"); if (k < input.length()) { findWord(k + 1, ""); } } if (findWord(k + 1, prefix + "y")) { return true; } } if (nine.get(z).startsWith(prefix + "z")) { if (nine.get(z).equals(prefix + "z")) { System.out.println(prefix + "z"); if (k < input.length()) { findWord(k + 1, ""); } } if (findWord(k + 1, prefix + "z")) { return true; } } } // wxyz; } } return false; } /** * @param args * @throws FileNotFoundException */ public static void main(final String[] args) throws FileNotFoundException { // TODO Auto-generated method stub // ArrayList<String> wordList = new ArrayList<String>(); final Scanner wordsIn = new Scanner(new File(System.getProperty("user.dir") + File.separator + "SINGLE.TXT")); while (wordsIn.hasNextLine()) { final String temp = wordsIn.nextLine(); if (temp.startsWith("a") || temp.startsWith("b") || temp.startsWith("c")) { two.add(temp); } else if (temp.startsWith("d") || temp.startsWith("e") || temp.startsWith("f")) { three.add(temp); } else if (temp.startsWith("g") || temp.startsWith("h") || temp.startsWith("i")) { four.add(temp); } else if (temp.startsWith("j") || temp.startsWith("k") || temp.startsWith("l")) { five.add(temp); } else if (temp.startsWith("m") || temp.startsWith("n") || temp.startsWith("o")) { six.add(temp); } else if (temp.startsWith("p") || temp.startsWith("q") || temp.startsWith("r") || temp.startsWith("s")) { seven.add(temp); } else if (temp.startsWith("t") || temp.startsWith("u") || temp.startsWith("v")) { eight.add(temp); } else if (temp.startsWith("w") || temp.startsWith("x") || temp.startsWith("y") || temp.startsWith("z")) { nine.add(temp); } } findWord(0, ""); }}