递归条件和基本案例确认

时间:2019-02-25 05:53:03

标签: java recursion

我找到了这段代码,它解决了如何在给定的2D矩阵挑战中查找单词。我试图了解作者的方法。

https://gist.github.com/Ray1988/8479951

但是我对此有一些疑问。希望您能在这里找到一些启示。

问题#1 在第22行中,我不完全理解第二个OR条件语句:

if (board[row][col]!=word.charAt(i)|| checker[row][col])

如果x和y位置的检查器为true,您如何阅读第二条说明?如果检查器存在?有什么意义?

问题2

第28行,似乎是递归的基本情况,满足要求的人将停止迭代。这是正确的吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

问题1的答案: 看一下作者的描述:它包含“同一字母单元不得重复使用” 作者使用检查器来跟踪使用过的单元格。因此,如果checker [row] [col]为真,则意味着它已经被使用。

问题2的答案: 您部分正确。实际上,第22行和第28行都是基本情况,因为它们不会自行调用该函数,而是检查某些条件并在满足条件时停止