1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| interface Dictionary
{
public boolean wordExist(String word);
public boolean wordBeginWith(String word);
}
public Vector<String> myMethod(Dictionary dictionary, char array[][])
{
Vector <String> result = new Vector<String>();
for (int i = 0; i < array.length; i++)
{
for (int j = 0; i < array[i].length; j ++)
{
result.addAll(recurseOnArray(dictionary, array, , i, j));
}
}
return result;
}
public Vector<String> recurseOnArray(Dictionary dictionary, char array[][], String word, int i, int j)
{
Vector<String> result = new Vector<String>();
if (array[i][j] == )
return result;
word = word + array[i][j];
if (dictionary.wordExist(word))
result.add(word);
if (!dictionary.wordBeginWith(word))
return result;
if (i > 0)
result.addAll(recurseOnArray(dictionary, array, word, i - 1, j);
if (i < array.length - 1)
result.addAll(recurseOnArray(dictionary, array, word, i + 1, j);
if (j >0)
result.addAll(recurseOnArray(dictionary, array, word, i, j - 1);
if (j < array[i].length - 1)
result.addAll(recurseOnArray(dictionary, array, word, i, j + 1);
return result;
} |
Partager