import java.util.TreeSet;
public class LetterCombination
{
TreeSet<String> finalList = new TreeSet<String>();
public LetterCombination(int totalLetters)
{
finalList = generateCombinations(totalLetters, totalLetters);
}
public TreeSet<String> generateCombinations(int totalLetters, int numLetters)
{
TreeSet<String> list = new TreeSet<String>();
list.addAll(generateCombinations(totalLetters, numLetters, 0));
if (numLetters - 1 > 0)
{
list.addAll(generateCombinations(totalLetters, numLetters - 1));
}
return list;
}
public TreeSet<String> generateCombinations(int totalLetters, int numLetters, int letter)
{
TreeSet<String> list = new TreeSet<String>();
String word = new String();
for (int i = letter; i < letter + numLetters; i++)
{
word = word + (char)('A'+i);
}
list.add(word);
if (letter + numLetters < totalLetters)
{
list.addAll(generateCombinations(totalLetters, numLetters, letter + 1));
}
return list;
}
public boolean contains(String word)
{
return finalList.contains(word);
}
} Powered by
GeSHi Syntax Highlighting software.
Author of all (other) material unless otherwise specified:
Loren Segal. Copyright 2005.