Menu
CoddyTech

Word Search

文字のグリッド board と文字列 word が与えられます。board は文字列のリストであり、board[r][c] は行 r、列 c の文字を表します。

グリッド上で word をたどれる場合は true を返してください。任意のセルから開始し、各ステップで現在のセルの真上、真下、左隣、または右隣のセルへ移動して、訪れたセルの文字が順番に word をつづるようにします。同じセルを2回使用することはできません。それ以外の場合は false を返してください。文字は大文字と小文字が区別されるため、a と A は異なります。

関数

exist(board: string-array, word: string) → boolean
boardstring-array
グリッド。各行に文字列を1つずつ
wordstring
trace という単語
戻り値boolean
単語が隣り合うセルをたどって見つけられるかどうか(各セルは最大1回まで使用)

制約

  • 1 ≤ board.length ≤ 6
  • 1 ≤ board[i].length ≤ 6であり、すべての行の長さは同じです。
  • 1 ≤ word.length ≤ 20
  • board と word には、大文字と小文字の英字のみが含まれます。

例

入力
board = ["STAR", "POOL", "ENDS"]word = "STOOLS"
出力
true
説明
0行0列のSから始め、右へ進んでT、下へ進んでO、右へ進んで2つ目のO、右へ進んでL、そして下へ進んで2行3列のSに到達します。これは6つの異なるセルで、それぞれが1つ前のセルに隣接しています。

lock icon提出時に隠しテスト+23件

challenge icon

発展問題

はいかいいえではなく、ボード上にwordの異なるなぞり方がいくつあるか数えられますか?

コードをリセット
def exist(board, word):
    # ここにコードを書いてください
テストケース

ケース1

ケース2

ケース3

入力

board = ["STAR", "POOL", "ENDS"]
word = "STOOLS"

期待値

true