0

我在尝试编写这个程序时遇到了困难。我在网上找到了许多类似的问题和解决方案,但它们并不是我想要的。

我的程序读取了一个文本文件并将其转换为 char 2D 数组。

示例文本文件:

HFELOJF
ESFOIGD
LSDIOGS
LTDMGER
OEROFFT
SFDLKEG

然后我给它一个诸如“hello”之类的词,程序会打印出天气或该词是否存在于数组中。有点像单词搜索。

我需要能够水平、垂直和对角搜索。但是在所有 3 种情况下,这个词也可以是倒退的。

我从 2 个 for 循环开始,从左上角开始,一直到最后。

在第二个 for 循环中,我有 3 个 while 循环要处理:水平、垂直和对角文本。但我刚刚意识到,如果这个词是相反的,它就行不通了。现在为了让我解决这个问题,我必须构造另外 3 个 while 循环来处理我的代码。

我只是觉得这非常重复,并认为必须有一种更简单的方法。但是我已经盯着这个问题看了好几个小时,还没有想出一个更好的主意。

如果我继续我所拥有的,我将在第二个 for 循环内有 2 个 for 循环和 6 个 while 循环,我发现它们非常混乱、重复和额外的代码。有没有更好、更快、更有效的方法来解决这样的问题?

感谢我能得到的所有帮助和信息!

4

2 回答 2

2

如果您只想检查反向

String reverse = new StringBuffer(string).reverse().toString();
于 2013-10-20T05:38:01.677 回答
0

这是我将如何做到的。循环遍历每个字母。假设该字母是单词的开头或结尾字母。因此,如果在“hello”的情况下不是“h”或“o”,则跳过它。然后为每个字母检查对角线、水平和垂直方向。此外,如果您对这整个相反的事情感到困扰,请忽略它。只需搜索字母“h”并确保检查该字母的所有方向。

于 2013-10-20T05:46:29.627 回答