Skip to content

Commit 2f279cf

Browse files
committed
solve: word search
1 parent 904942b commit 2f279cf

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

word-search/evan.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
from typing import List
2+
3+
4+
class Solution:
5+
def exist(self, board: List[List[str]], word: str) -> bool:
6+
def dfs(row, col, k):
7+
if k == len(word):
8+
return True
9+
10+
# out of range
11+
if row < 0 or row >= len(board) or col < 0 or col >= len(board[0]):
12+
return False
13+
14+
# char not found
15+
if board[row][col] != word[k]:
16+
return False
17+
18+
temp = board[row][col]
19+
20+
# mark visited char
21+
board[row][col] = None
22+
23+
result = (
24+
dfs(row + 1, col, k + 1) # top
25+
or dfs(row - 1, col, k + 1) # bottom
26+
or dfs(row, col + 1, k + 1) # right
27+
or dfs(row, col - 1, k + 1) # left
28+
)
29+
30+
# restore char
31+
board[row][col] = temp
32+
33+
return result
34+
35+
for row in range(len(board)):
36+
for col in range(len(board[0])):
37+
if dfs(row, col, 0):
38+
return True
39+
40+
return False

0 commit comments

Comments
 (0)