劍指offer 12 矩陣中的路徑

2021-10-06 05:33:23 字數 793 閱讀 4208

class solution:

def exist(self, board: list[list[str]], word: str) -> bool:

def dfs(i, j, k):

#i,j分別表示行列的索引,當i、j超出矩陣的邊界,或者矩陣board中的元素與word中的第k個元素不匹配

if not 0 <= i < len(board) or not 0 <= j < len(board[0]) or board[i][j] != word[k]: return false

if k == len(word) - 1: return true #最後乙個元素也匹配上的時候,返回true,說明匹配完全正確

tmp, board[i][j] = board[i][j], '' #建立乙個臨時的tmp,用於記錄匹配上的元素位置,並將匹配過的元素用『』做標記

res = dfs(i + 1, j, k + 1) or dfs(i - 1, j, k + 1) or dfs(i, j + 1, k + 1) or dfs(i, j - 1, k + 1)

board[i][j] = tmp #將 tmp 暫存值還原至 board[i][j] 元素。

return res

for i in range(len(board)):

for j in range(len(board[0])):

if dfs(i, j, 0): return true #如果第乙個元素匹配不上,直接false

return false

劍指offer12 矩陣中的路徑

設計乙個函式,用來判斷在乙個矩陣中是否存在一條包含某個字串所有字元的路徑。路徑可以從矩陣中的任意一格開始,每一步可以在矩陣中向左 右 上 下移動一格。如果一條路徑經過了矩陣的某一格,那麼該路徑不能再次進入該格仔。利用回溯法的思想,除矩陣邊界上的格仔外,其它格仔都有四個相鄰的格仔,當矩陣中座標為 ro...

矩陣中的路徑(劍指offer 12)

設計乙個函式,用來判斷在乙個矩陣中是否存在一條包含某個字串所有字元的路徑,路徑可以從矩陣中任意一格開始,每一步可以在矩陣中向左 右 上 下各移動一格,如果一條路徑經過了矩陣中的某一格,那麼該路徑不能再次進入該格仔。例下 3 x 4的矩陣中包含一條字串 bfce 的路徑,但是矩陣中不包含 abfb 路...

劍指offer 12 矩陣中的路徑

判斷在乙個矩陣中是否存在一條包含某字串所有字元的路徑。路徑可以從矩陣中的任意乙個格仔開始,每一步可以在矩陣中向上下左右移動乙個格仔。如果一條路徑經過了矩陣中的某乙個格仔,則該路徑不能再進入該格仔。public class solution,private int rows private int c...