題目描述:請設計乙個函式,用來判斷在乙個矩陣中是否存在一條包含某字串
所有字元的路徑。路徑可以從矩陣中的任意乙個格仔開始,每一步可以在矩陣中向
左,向右,向上,向下移動乙個格仔。如果一條路徑經過了矩陣中的某乙個格仔,
則該路徑不能再進入該格仔。
思路:回溯法,雙層 for 迴圈,判斷每乙個點,每次遞迴呼叫上下左右四個點,用
flag 標誌是否已經匹配(return),進行判斷點的位置是否越界,是否已經正確匹
配,判斷矩陣的路徑與模式串的第 index 個字元是否匹配。
**實現:
public boolean haspath(char matrix, int rows, int cols, char str)
} }return false;
}private boolean helper(char matrix,int rows,int cols,int i,int j,char str,int k,int flag)
if(k == str.length - 1)
flag[index] = 1;
if (helper(matrix, rows, cols, i - 1, j, str, k + 1, flag)
|| helper(matrix, rows, cols, i + 1, j, str, k + 1, flag)
|| helper(matrix, rows, cols, i, j - 1, str, k + 1, flag)
|| helper(matrix, rows, cols, i, j + 1, str, k + 1, flag))
flag[index] = 0;
return false;
}
面試題目66 矩陣中的路徑
題目 請設計乙個函式,用來判斷在乙個矩陣中是否存在一條包含某路徑 字串所有字元的路徑,路徑可以從矩陣中任意一格開始,每一步可以在矩陣中向左右上下移動一格,includeusing namespace std 判斷矩陣中是否存在相應的路徑 bool has path core char matrix,...
劍指offer 面試題66 矩陣中的路徑
author wangsai 題目要求 請設計乙個函式,用來判斷在乙個矩陣中是否存在一條包含某字串所有字元的路徑。路徑可以從矩陣中的任意乙個格仔開始,每一步可以在矩陣中向左,向右,向上,向下移動乙個格仔。如果一條路徑經過了矩陣中的某乙個格仔,則該路徑不能再進入該格仔。例如 a b c e s f c...
矩陣中的路徑
請設計乙個函式,用來判斷在乙個矩陣中是否存在一條包含某字串所有字元的路徑。路徑可以從矩陣中的任意乙個格仔開始,每一步可以在矩陣中向左,向右,向上,向下移動乙個格仔。如果一條路徑經過了矩陣中的某乙個格仔,則該路徑不能再進入該格仔。例如 3 4 矩陣 a b c e s f c s a d e e 中包...