-1

我正在尝试用 Java 编写一个基本程序,并且我正在使用 BlueJ。我必须阅读一个由字母组成的 15x15 矩阵的文本文件 (input.txt),并在其中查找单词。这些单词是已知的并写入文件 input.txt。可能 txt 文件已经以某种方式格式化,因为它形成了矩阵和搜索词,但是当我去打印时,我跳过了前 7-8 行(矩阵)。

我是一个初学者,如果可能的话,我想要一些关于如何启动这个程序的帮助,关于如何在不省略前几行的情况下读取文件 input.txt,以及如何读取矩阵中的单词(单词已经知道)并像填字游戏一样返回单词的“位置”或“方向”(北、南、西、东、东北、北-ov、南-e等...)!

谢谢你们 ;)

文件 input.txt 是:

15
*
ESAFAMELBORPOZE
MTOTEQEVIRCSFCE
SDSTTNLHTIMSFUD
CITGSUGBANDTUOI
IVRUPORAMREFBCE
MEAIATGFTNOCSOR
MRTDDRDAENORRPO
ITEIEOINEMOIPOL
AIGANCTRPIPMRSO
UTIORETAEMOIEID
SIAAEUGAABRNZTA
CAMMINAVRAIEIIM
ARTSONOPRRTLOVM
ACATUDESNNONSOO
TALOBMABEAMVOSS
#
SMITH
TENENTE
FERMA
PROBLEMA
VORRA
STRATEGIA
AGOSTO
FRUTTA
NOIA
PAURA
GUIDI
SCIMMIA
CAMMINA
POSITIVO
SOMMA
SPADE
TRENO
TIRO
CORTO
MONTAGNE
CRIMINE
TUOI
LIBERI
SCRIVE
COMPAGNO
BAMBOLA
VAMPIRO
SEDUTA
BAND
DOLORE
DONO
PREZIOSO
DIVERTITI
BUFFO
NOSTRA
CUOCO
FASE
IDEE
4

2 回答 2

0

我会将数据存储两次 1. 行作为字符串 -> 您可以使用.indexOf [水平搜索] 进行搜索 2. 列作为字符串 -> 您可以使用.indexOf [垂直搜索]进行搜索

也许我什至会在所有行中附加“分隔符”以避免在每一行上进行迭代以进行搜索。(列相同)

于 2012-12-27T18:00:05.187 回答
-1

One way to think about it would be to think of your matrix as a graph, and find the walk for each word.

A bad algorithm for doing it would be to find the starting (or ending) letter of a word, then parse the entire tree of connecting letters until you find it, and repeat until you find the word.

Start here, and it should lead you to some much better algorithms.

于 2012-12-27T17:55:35.747 回答