1. 矩阵中的路径
给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用
方法:
def exist(board, word):
row = len(board)
col = len(board[0])
def dfs(i, j, index):
if i < 0 or j < 0 or i >= row or j >= col or board[i][j]!= word[index]:
return False
if index == len(word) - 1:
return True
temp = board[i][j]
board[i][j] = '-'
res = dfs(i, j + 1, index + 1) or dfs(i, j - 1, index + 1) or dfs(i + 1, j, index + 1) or dfs(i - 1, j, index + 1)
board[i][j] = temp
return res
for i in range(row):
for j in range(col):
if dfs(i, j, 0):
return True
return False