# 暴力用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...