我在嘗試編寫此程序時遇到困難。我在網上發現了很多類似的問題和解決方案,但他們並不完全是我所期待的。在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數組。是的,這個問題很糟糕,但我相信你會在解決問題的路上找出很多方法 –