描述
请设计一个函数,用来判断在一个n乘m的矩阵中是否存在一条包含某长度为len的字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个格子之后,路径不能再次进入该格子。
示例
输入:
返回值:
思路
对于一个矩阵,首先应该遍历所有的节点,尝试把每一个节点当作入口点,代入到DFS算法,计算DFS(matrix,word,i,j,0);
DFS深度优先算法dfs(matrix,word,i,j,index)
正确口条件:index=strlen(word),错误出口条件: i,j超出矩阵边界,或者当前word[index]!=matrix[i][j];如果满足条件,则将matrix[i][j]置为v,表示已经visit过该节点,之后不能再经过该节点,然后继续调用dfs(matrix,word,[上下左右四个点],index+1),之后将visit的点还原为原值即可
链接
https://www.nowcoder.com/practice/2a49359695a544b8939c77358d29b7e6