All pastes #542712 Raw Edit

ELIC

public java v1 · immutable
·published 2007-06-05 22:11 UTC
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 String				input		= "732559968";	static ArrayList<String>	wordList	= new ArrayList<String>();	public static void findWord(final int k)	{		if (input.substring(k, k + 1).equals("2"))		{			for (int z = 0; z < wordList.size(); z++)			{				if (wordList.get(z).startsWith("a"))				{					findWord(k + 1, "a");				}				if (wordList.get(z).startsWith("b"))				{					findWord(k + 1, "b");				}				if (wordList.get(z).startsWith("c"))				{					findWord(k + 1, "c");				}			}			// abc;		}		else if (input.substring(k, k + 1).equals("3"))		{			for (int z = 0; z < wordList.size(); z++)			{				if (wordList.get(z).startsWith("d"))				{					findWord(k + 1, "d");				}				if (wordList.get(z).startsWith("e"))				{					findWord(k + 1, "e");				}				if (wordList.get(z).startsWith("f"))				{					findWord(k + 1, "f");				}			}			// def;		}		else if (input.substring(k, k + 1).equals("4"))		{			for (int z = 0; z < wordList.size(); z++)			{				if (wordList.get(z).startsWith("g"))				{					findWord(k + 1, "g");				}				if (wordList.get(z).startsWith("h"))				{					findWord(k + 1, "h");				}				if (wordList.get(z).startsWith("i"))				{					findWord(k + 1, "i");				}			}			// ghi;		}		else if (input.substring(k, k + 1).equals("5"))		{			for (int z = 0; z < wordList.size(); z++)			{				if (wordList.get(z).startsWith("j"))				{					findWord(k + 1, "j");				}				if (wordList.get(z).startsWith("k"))				{					findWord(k + 1, "k");				}				if (wordList.get(z).startsWith("l"))				{					findWord(k + 1, "l");				}			}			// jkl;		}		else if (input.substring(k, k + 1).equals("6"))		{			for (int z = 0; z < wordList.size(); z++)			{				if (wordList.get(z).startsWith("m"))				{					findWord(k + 1, "m");				}				if (wordList.get(z).startsWith("n"))				{					findWord(k + 1, "n");				}				if (wordList.get(z).startsWith("o"))				{					findWord(k + 1, "o");				}			}			// mno;		}		else if (input.substring(k, k + 1).equals("7"))		{			for (int z = 0; z < wordList.size(); z++)			{				if (wordList.get(z).startsWith("p"))				{					findWord(k + 1, "p");				}				if (wordList.get(z).startsWith("q"))				{					findWord(k + 1, "q");				}				if (wordList.get(z).startsWith("r"))				{					findWord(k + 1, "r");				}				if (wordList.get(z).startsWith("s"))				{					findWord(k + 1, "s");				}			}			// pqrs;		}		else if (input.substring(k, k + 1).equals("8"))		{			for (int z = 0; z < wordList.size(); z++)			{				if (wordList.get(z).startsWith("t"))				{					findWord(k + 1, "t");				}				if (wordList.get(z).startsWith("u"))				{					findWord(k + 1, "u");				}				if (wordList.get(z).startsWith("v"))				{					findWord(k + 1, "v");				}			}			// tuv;		}		else if (input.substring(k, k + 1).equals("9"))		{			for (int z = 0; z < wordList.size(); z++)			{				if (wordList.get(z).startsWith("w"))				{					findWord(k + 1, "w");				}				if (wordList.get(z).startsWith("x"))				{					findWord(k + 1, "x");				}				if (wordList.get(z).startsWith("y"))				{					findWord(k + 1, "y");				}				if (wordList.get(z).startsWith("z"))				{					findWord(k + 1, "z");				}			}			// wxyz;		}	}	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 < wordList.size(); z++)			{				if (wordList.get(z).startsWith(prefix + "a"))				{					if (findWord(k + 1, prefix + "a"))					{						return true;					}				}				if (wordList.get(z).startsWith(prefix + "b"))				{					if (findWord(k + 1, prefix + "b"))					{						return true;					}				}				if (wordList.get(z).startsWith(prefix + "c"))				{					if (findWord(k + 1, prefix + "c"))					{						return true;					}				}				System.out.println(prefix);				findWord(k + 1);				return false;			}			// abc;		}		else if (input.substring(k, k + 1).equals("3"))		{			for (int z = 0; z < wordList.size(); z++)			{				if (wordList.get(z).startsWith(prefix + "d"))				{					if (findWord(k + 1, prefix + "d"))					{						return true;					}				}				if (wordList.get(z).startsWith(prefix + "e"))				{					if (findWord(k + 1, prefix + "e"))					{						return true;					}				}				if (wordList.get(z).startsWith(prefix + "f"))				{					if (findWord(k + 1, prefix + "f"))					{						return true;					}				}				System.out.println(prefix);				findWord(k + 1);				return false;			}			// def;		}		else if (input.substring(k, k + 1).equals("4"))		{			for (int z = 0; z < wordList.size(); z++)			{				if (wordList.get(z).startsWith(prefix + "g"))				{					if (findWord(k + 1, prefix + "g"))					{						return true;					}				}				if (wordList.get(z).startsWith(prefix + "h"))				{					if (findWord(k + 1, prefix + "h"))					{						return true;					}				}				if (wordList.get(z).startsWith(prefix + "i"))				{					if (findWord(k + 1, prefix + "i"))					{						return true;					}				}				System.out.println(prefix);				findWord(k + 1);				return false;			}			// ghi;		}		else if (input.substring(k, k + 1).equals("5"))		{			for (int z = 0; z < wordList.size(); z++)			{				if (wordList.get(z).startsWith(prefix + "j"))				{					if (findWord(k + 1, prefix + "j"))					{						return true;					}				}				if (wordList.get(z).startsWith(prefix + "k"))				{					if (findWord(k + 1, prefix + "k"))					{						return true;					}				}				if (wordList.get(z).startsWith(prefix + "l"))				{					if (findWord(k + 1, prefix + "i"))					{						return true;					}				}				System.out.println(prefix);				findWord(k + 1);				return false;			}			// jkl;		}		else if (input.substring(k, k + 1).equals("6"))		{			for (int z = 0; z < wordList.size(); z++)			{				if (wordList.get(z).startsWith(prefix + "m"))				{					if (findWord(k + 1, prefix + "m"))					{						return true;					}				}				if (wordList.get(z).startsWith(prefix + "n"))				{					if (findWord(k + 1, prefix + "n"))					{						return true;					}				}				if (wordList.get(z).startsWith(prefix + "o"))				{					if (findWord(k + 1, prefix + "o"))					{						return true;					}				}				System.out.println(prefix);				findWord(k + 1);				return false;			}			// mno;		}		else if (input.substring(k, k + 1).equals("7"))		{			for (int z = 0; z < wordList.size(); z++)			{				if (wordList.get(z).startsWith(prefix + "p"))				{					if (findWord(k + 1, prefix + "p"))					{						return true;					}				}				if (wordList.get(z).startsWith(prefix + "q"))				{					if (findWord(k + 1, prefix + "q"))					{						return true;					}				}				if (wordList.get(z).startsWith(prefix + "r"))				{					if (findWord(k + 1, prefix + "r"))					{						return true;					}				}				if (wordList.get(z).startsWith(prefix + "s"))				{					if (findWord(k + 1, prefix + "s"))					{						return true;					}				}				System.out.println(prefix);				findWord(k + 1);				return false;			}			// pqrs;		}		else if (input.substring(k, k + 1).equals("8"))		{			for (int z = 0; z < wordList.size(); z++)			{				if (wordList.get(z).startsWith(prefix + "t"))				{					if (findWord(k + 1, prefix + "t"))					{						return true;					}				}				if (wordList.get(z).startsWith(prefix + "u"))				{					if (findWord(k + 1, prefix + "u"))					{						return true;					}				}				if (wordList.get(z).startsWith(prefix + "v"))				{					if (findWord(k + 1, prefix + "v"))					{						return true;					}				}				System.out.println(prefix);				findWord(k + 1);				return false;			}			// tuv;		}		else if (input.substring(k, k + 1).equals("9"))		{			for (int z = 0; z < wordList.size(); z++)			{				if (wordList.get(z).startsWith(prefix + "w"))				{					if (findWord(k + 1, prefix + "w"))					{						return true;					}				}				if (wordList.get(z).startsWith(prefix + "x"))				{					if (findWord(k + 1, prefix + "x"))					{						return true;					}				}				if (wordList.get(z).startsWith(prefix + "y"))				{					if (findWord(k + 1, prefix + "y"))					{						return true;					}				}				if (wordList.get(z).startsWith(prefix + "z"))				{					if (findWord(k + 1, prefix + "z"))					{						return true;					}				}				System.out.println(prefix);				findWord(k + 1);				return false;			}			// 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())		{			wordList.add(wordsIn.nextLine());		}		findWord(0);	}}