-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy path0079_WordSearch.py
29 lines (23 loc) · 896 Bytes
/
0079_WordSearch.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class Solution(object):
def exist(self, board, word):
"""
:type board: List[List[str]]
:type word: str
:rtype: bool
"""
for row in range(len(board)):
for col in range(len(board[0])):
if self.find(board, row, col, word):
return True
return False
def find(self, board, i, j, word):
if len(word) == 0:
return True
if i < 0 or i >= len(board) or j < 0 or j >= len(board[0]) or word[0] != board[i][j]:
return False
tmp = board[i][j]
board[i][j] = '#'
new_word = word[1:]
result = self.find(board, i+1, j, new_word) or self.find(board, i-1, j,new_word) or self.find(board, i, j+1, new_word) or self.find(board, i, j-1, new_word)
board[i][j] = tmp
return result