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...