-1

Java で基本的なプログラムを作成しようとしており、BlueJ を使用しています。文字で構成された 15x15 のマトリックスを含むテキスト ファイル (input.txt) を読み取り、その中で単語を検索する必要があります。これらの単語は既知であり、input.txt ファイルに書き込まれます。おそらくtxtファイルは、マトリックスと検索ワードを形成するため、何らかの形で既にフォーマットされていますが、印刷するときは最初の7〜8行(マトリックス)をスキップします。

私は初心者です。可能であれば、このプログラムの開始方法、最初の数行を省略せずにファイル input.txt を読み取る方法、およびマトリックス内の単語を読み取る方法について少し助けてください (単語は既にクロスワードのように、単語の「位置」または「方向」(北、南、西、東、北東、北、南、など) を返します。

皆さん、ありがとうございました ;)

ファイル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

データを 2 回保存します 1. 行を文字.indexOf 列として -> [水平検索] で検索できます 2. 列を文字列として -> .indexOf [垂直検索]で検索できます

たぶん、検索のために各行の繰り返しを避けるために、すべての行に「分離文字」を追加することさえあります。(列も同様)

于 2012-12-27T18:00:05.187 に答える
-1

それについて考える 1 つの方法は、行列をグラフと考えて、各単語のウォークを見つけることです。

それを行うための悪いアルゴリズムは、単語の開始 (または終了) 文字を見つけ、それが見つかるまで接続文字のツリー全体を解析し、単語が見つかるまで繰り返すことです。

ここから開始すると、より優れたアルゴリズムが得られるはずです。

于 2012-12-27T17:55:35.747 に答える