【发布时间】:2013-11-28 02:16:18
【问题描述】:
通过键盘给你一个二维数组作为字符串和一个单词。这个单词 可以以任何方式(要考虑所有 8 个邻居),但您不能使用 匹配时两次相同的字符。返回单词的第一个和最后一个 字符的索引为 (x,y)。如果未找到匹配项,则返回 -1。
这就是问题所在。我在搜索时遇到问题。我试过了:
int x=0,y=0;
for(int f=0; f<WordinArray.length; f++){
for(int i=0; i<matrix.length; i++){
for(int j=0; j<matrix[0].length; j++){
if(matrix[i][j].equals(WordinArray[f])){
x=i; y=j;
System.out.print("("+x+","+y+")");
}
}
}
}
但是,该代码没有按预期工作。我还能怎么写这个搜索代码?
【问题讨论】:
-
(all 8 neighbors to be considered: 多解释一下 -
八个可能的方向:水平、垂直和对角线 XY( 0, 1 ), XY( 0, -1 ), XY( 1, 0 ), XY( -1, 0 ) XY( 1 , 1 ), XY( 1, -1 ), XY( -1, 1 ), XY( -1, -1 )
-
你是说这是一个字母数组,就像一个单词搜索谜题?
-
这是你的问题吗? uva.onlinejudge.org/…
-
没错,我需要一个递归。但问题是,我还不知道如何进行递归。因此,我必须编写没有递归的代码。 @JorgeCampos
标签: java arrays search multidimensional-array