劍指offer 矩陣中的路徑

2021-10-04 02:48:56 字數 739 閱讀 1719

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

矩陣中包含一條字串"bcced"的路徑,但是矩陣中不包含"abcb"路徑,因為字串的第乙個字元b佔據了矩陣中的第一行第二個格仔之後,路徑不能再次進入該格仔。

回溯法根據給定的矩陣大小設定乙個標誌位,每個位上代表該點是否已經經過了。

遍歷給定的陣列,找與字串首位相同的字元。

在當前字元位置的基礎上繼續在周圍上下左右四個位置遞迴尋找下乙個匹配的字元。

遞迴的終止條件為:下乙個尋找的字元位置為之前經過的位置;下乙個尋找的位置越界(前乙個字元位置在矩陣邊界);下乙個尋找的位置與字串不匹配。

如果尋找到字串的末尾,則說明路徑存在。

根據回溯法的特性,如果遍歷到第n個字元時,發現第n個字元周圍四個位置都不滿足要求,則返回第n-1個位置重新定位第n個字元的位置。

class solution 

return false;

}bool func(char* matrix, int rows, int cols, char* str, bool *pass, int x, int y)

};

劍指offer 矩陣中的路徑

請設計乙個函式,用來判斷在乙個矩陣中是否存在一條包含某字串所有字元的路徑。路徑可以從矩陣中的任意乙個格仔開始,每一步可以在矩陣中向左,向右,向上,向下移動乙個格仔。如果一條路徑經過了矩陣中的某乙個格仔,則該路徑不能再進入該格仔。例如 a b t g c f c s j d e h 矩陣中包含一條字串...

劍指offer 矩陣中的路徑

請設計乙個函式,用來判斷在乙個矩陣中是否存在一條包含某字串所有字元的路徑。路徑可以從矩陣中的任意乙個格仔開始,每一步可以在矩陣中向左,向右,向上,向下移動乙個格仔。如果一條路徑經過了矩陣中的某乙個格仔,則之後不能再次進入這個格仔。注意 樣例matrix a b c e s f c s a d e e...

劍指offer 矩陣中的路徑

請設計乙個函式,用來判斷在乙個矩陣中是否存在一條包含某字串所有字元的路徑。路徑可以從矩陣中的任意乙個格仔開始,每一步可以在矩陣中向左,向右,向上,向下移動乙個格仔。如果一條路徑經過了矩陣中的某乙個格仔,則之後不能再次進入這個格仔。注意 matrix a b c e s f c s a d e e s...