劍指offer 12 矩陣中的路徑

2021-10-07 20:54:42 字數 880 閱讀 3923

# 暴力用dfs遞迴暴力查詢:

# 遞迴終止條件:

# false: 陣列越界 or 當前索引和目標字元不匹配

# true:傳進來目標字元的索引=len(word)-1

# 當前層遞推:在上下左右四個方向進行遞迴;為了防止重複訪問,標記當前元素,最後再重置元素;

# 返回值:bool

def dfs(i,j,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

temp, board[i][j] = board[i][j], "_" # 確保當前層不會重複訪問

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] = temp

return res

for i in range(len(board)):

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

if dfs(i,j,0):

return true

return false

劍指offer12 矩陣中的路徑

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

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

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

劍指offer 12 矩陣中的路徑

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