劍指offer12 矩陣中的路徑

2021-09-19 16:52:41 字數 732 閱讀 2230

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

利用回溯法的思想,除矩陣邊界上的格仔外,其它格仔都有四個相鄰的格仔,當矩陣中座標為(row,col)的格仔和路徑字串下標為pathlength的字元一樣時,從四個相鄰的格仔(row,col-1),(row-1,col),(row+1,col),(row,col+1)中去定位路徑字串中下標為pathlength+1的字元。如果四個相鄰的格仔都沒有匹配到下標為pathlength+1的字元,然後退回到pathlength-1的字元重新定位,遞迴重複這個過程,直到路徑上所有的字元都找到在矩陣中的位置,即str[pathlength] == 『\0』。

**如下:

#include#includeint haspath2(const char* matrix, int rows, int cols, int row,

int col, const char* str, int pathlength, int *visit)

} return haspath;

}int haspath(const char *matrix, int rows, int cols, const char *str)

} free(visit);

return 0;

}

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

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

劍指offer 12 矩陣中的路徑

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

劍指Offer12 矩陣中的路徑

劍指offer典型題整理 爭取做最好的題解 本題和 leetcode 79 相同 題目描述 請設計乙個函式,用來判斷在乙個矩陣中是否存在一條包含某字串所有字元的路徑。路徑可以從矩陣中的任意一格開始,每一步可以在矩陣中向左 右 上 下移動一格。如果一條路徑經過了矩陣的某一格,那麼該路徑不能再次進入該格...