私は次のようなString[][]
配列を持っています
h,b,c,d
e,e,g,h
i,l,k,l
m,l,o,p
ArrayList で指定された単語を見つけるには、ArrayList をこの配列と照合する必要があります。単語を検索するときは、正の一致と文字の位置を取得する必要があります。hello
たとえば、この場合は(0,0)
、、、(1,1)
およびです。(2,1)
(3,1)
(3,2)
文字ごとに移動し、最初の文字を見つけることに成功したと仮定するとl
、プログラムはその隣の場所で次の文字 ( ) を見つけようとしますl
。したがって、e、e、g、k、o、l、m、および i に対して一致する必要があります。これは、その周囲のすべての文字 (水平、垂直、斜め) を意味します。単語内で同じ位置を 2 回見つけることはできないため(0,0)
、位置が 2 回一致するため(1,1)
、、、、および(2,1)
は受け入れられません。この場合、斜めの位置が許可されているため、両方が単語と一致しますが、位置を複数回使用できないという要件により、別の単語と一致する必要があります。(2,1)
(3,2)
(2,1)
l
この場合も一致する必要があります
h,b,c,d
e,e,g,h
l,l,k,l
m,o,f,p
を検索しようとするとhelllo
、一致しません。または一致しないかのどちら(x1, y1) (x1, y1)
かです。(x1, y1) (x2, y2) (x1, y1)
この種の機能を実装するための最良の方法は何かを知りたいです。ArrayList に4x4String[][]
配列と 100,000 ワードがある場合、これを行う最も効率的で簡単な方法は何ですか?