我在尝试编写此程序时遇到困难。我在网上发现了很多类似的问题和解决方案,但他们并不完全是我所期待的。在Java中水平,垂直和对角地(两个方向)搜索2D阵列
有一个文本文件,我的程序读取并转换为字符二维数组。
示例文本文件:
HFELOJF
ESFOIGD
LSDIOGS
LTDMGER
OEROFFT
SFDLKEG
然后我给它一个字,如“你好”,程序打印出天气或不存在这个词在数组中。有点像单词搜索。
我需要能够水平,垂直和对角搜索。但是这个词在所有3种情况下也可能倒退。
我已经开始使用2 for循环,从左上角开始并工作到最后。
在第二个for循环内我有3个while循环来处理:水平,垂直和对角线文本。但我只是意识到,如果这个词是相反的,它就行不通。现在为了解决这个问题,我必须构建3个其他while循环来处理我的代码。
我只是觉得这非常重复,认为必须有一个更简单的方法。但我一直在盯着这个问题几个小时,并没有提出一个更明智的想法。
如果我继续我所拥有的,我会在第二个for循环中有2个for循环和6个while循环,我发现它们非常混乱,重复和额外的代码。有没有更好,更快,更有效的方法来解决这个问题?
欣赏我所能得到的所有帮助和信息!
如果你可以找到一个'''String',请将其反转并查看它是否有效。 – Justin
是的,这将工作,但它需要我做另一个循环,并保持减去数组,看看它是否工作。我知道它的工作原理,但它使代码翻倍。我想看看是否有一种更简单的方法来处理这两种情况,前进和颠倒。 – ashimashi
“我只是觉得这很重复,认为必须有一个更简单的方法”。有时候为了理解题材,家庭作业练习(我假设这就是这个)是一种艰苦而重复的练习。在这种情况下,主题是遍历2D数组。是的,这个问题很糟糕,但我相信你会在解决问题的路上找出很多方法 –