gpt4 book ai didi

java - 搜索数组的递归方法不起作用

转载 作者:行者123 更新时间:2023-12-01 11:57:36 25 4
gpt4 key购买 nike

所以我有这个递归方法,可以在 4x4“板”中搜索单词(想想真是不可思议,它只查看当前字母的上方、下方、左侧和右侧)。它传递一个索引(它正在从给定单词中搜索的当前字母)以及要搜索的行和列。第一个 if 语句处理第一个字母,并且始终有效。下一个 else if 语句不起作用,我不知道为什么。任何有关原因的帮助都会受到赞赏。 secondArray 在程序显示时的另一部分使用。

private boolean verifyWord(int index, int row, int column) {
System.out.println(index + " " + row + " " +column);
if (index == 0) {
for (int i = 0; i < letterArray.length; i++) {
for (int i2 = 0; i2 < letterArray[0].length; i2++) {
if (letterArray[i][i2] == wordToFind.charAt(index)) {
secondArray[i][i2] = true;
verifyWord(index+1, i, i2);
}
}
}
} else if (index > 0 && index < wordToFind.length()) {
// check above row
if (row+1 < row) {
if (letterArray[row+1][column] == wordToFind.charAt(index)) {
secondArray[row+1][column] = true;
verifyWord(index+1, row+1, column);
}
}

//check below row
if (row-1 >= 0) {
if (letterArray[row-1][column] == wordToFind.charAt(index)) {
secondArray[row-1][column] = true;
verifyWord(index+1, row-1, column);
}
}

//check left column
if (column-1 >= 0) {
if (letterArray[row][column-1] == wordToFind.charAt(index)) {
secondArray[row][column-1] = true;
verifyWord(index+1, row, column-1);
}
}

//check right column
if (column+1 < letterArray[0].length) {
if (letterArray[row][column+1] == wordToFind.charAt(index)) {
secondArray[row][column+1] = true;
verifyWord(index+1, row, column+1);
}
}
} else {
boolCheck = true;
}
return boolCheck;
}

最佳答案

第一个条件if(row+1 < row)在你的else if(index > 0 && index < wordToFind.length())永远不会被评估为 true (x+1 始终大于 x)。

您可能希望它是 if(row+1 < letterArray.length)

关于java - 搜索数组的递归方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28313738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com