我有一个用随机字母填充的二维数组。我有话要在那个数组中找到。
我编写了一个 <div ng-app='myApp'>
<div ng-controller='ctrl' id='ctrl'>
{{msg}}
<button id='btn' ng-click='sayHello()'>
Go
</button>
</div>
</div>
方法,该方法使用:
toString
:要找到的字符串的起始位置startX
:要找到的字符串的起始位置startY
:要查找的字符串的结束X位置endX
:要查找的字符串的结束Y位置我提供的代码水平和垂直工作,但不适用于对角线。如何打印对角放置在阵列中的单词?
endY
答案 0 :(得分:0)
如果:
然后你可以这样做:
@Override
public String toString()
{
StringBuilder string = new StringBuilder();
for(int c = startY; c<=endY; c++) {
string.append(startX).append("x").append(c).append(", ");
}
return string.toString();
}
答案 1 :(得分:0)
我认为你所寻找的是一种在字母拼图中找到单词的方法。
在这种情况下,我建议您将拼图存储在2D数组中,并将字词存储在字符串中。然后,您需要检查数组中与您要查找的字符串的开头字符具有相同字符的所有位置(在我提供的代码中:search/b/109/p/93
)。找到匹配项后,您需要检查字符串的其余字符(在我提供的代码中:findWord
)。如果其余字符匹配,那么您已找到该字符串,否则您需要检查其他方向或字符串第一个字母的下一个外观。
接下来我提供代码:
checkDirections
请注意:
拼图矩阵是随机初始化的,我对单词&#39; java&#39;进行了硬编码。在2,3 - > 5,3个位置(这仅用于示例,但您应该从命令行或文件初始化拼图)。
ALPHABET变量仅用于随机生成。
方向存储在两个一维阵列上,以编程方式制作8个方向,但为了清晰起见,您可以展开。
在性能方面,它可能不是最有效的代码,因为如果字符串的第一个字符出现多次,您将仔细检查大量的位置。然而,它仍然是一个可行且简单的解决方案。