面試題 矩陣中的路徑

2021-08-15 01:42:58 字數 698 閱讀 7378

請設計乙個函式,用來判斷在乙個矩陣中是否存在一條包含某字串所有字元的路徑。路徑可以從矩陣中的任意一格開始,每一步可以在矩陣中向左、右、上、下移動一格。如果一條路徑經過了矩陣的某一格,那麼該路徑就不能再次進入該格仔。例如,在下面的3x4的矩陣中包含一條字串「bfce」的路徑。但矩陣中不包含字串「abfb」的路徑,因為字串的第乙個字元b佔據了矩陣中的第一行第二個格仔之後,路徑不能再次進入這個格仔。

a b t g

c f c s 

j d e h

思路:沒什麼特別好的想法,因為每個點都可能是起點,所以一波遍歷在所難免。然後再來訪問周圍四點,如果符合目標,則繼續訪問周圍四點,這就是乙個重複操作。又因訪問過了不能再訪問,那麼每個點都要有個bool來判斷是否訪問過。那麼就要寫兩個方法來實現了。

public static bool haspath(char matrix, int rows, int cols, char str)

}return false;

}private static bool haspathcore(char matrix, int rows, int cols, char str, bool visited,

int row, int col, int pathlength)

}return haspath;

}想法:「這題用的是回溯法,可以看成是乙個盞」是書中意思,確實讓我體會到程式設計設計的精妙。

面試題12 矩陣中的路徑

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

面試題12 矩陣中的路徑

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

面試題12 矩陣中的路徑

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