2
def placeWordInCrossword(self, board: List[List[str]], word: str) -> bool:3
m, n = len(board), len(board[0])7
return 0 <= x < m and 0 <= y < n9
def place(x, y, word, direction):15
or (board[x][y] != " " and board[x][y] != c)23
if board[x][y] == "#" or (24
board[x][y] != " " and board[x][y] != word[0]30
(not valid(x, y - 1) or board[x][y - 1] == "#")31
and (not valid(x, y + W) or board[x][y + W] == "#")32
and place(x, y, word, [0, 1])38
(not valid(x, y + 1) or board[x][y + 1] == "#")39
and (not valid(x, y - W) or board[x][y - W] == "#")40
and place(x, y, word, [0, -1])46
(not valid(x - 1, y) or board[x - 1][y] == "#")47
and (not valid(x + W, y) or board[x + W][y] == "#")48
and place(x, y, word, [1, 0])54
(not valid(x + 1, y) or board[x + 1][y] == "#")55
and (not valid(x - W, y) or board[x - W][y] == "#")56
and place(x, y, word, [-1, 0])