新新新方法来了
class Solution {
public boolean hasPath(char[][] matrix, String str) {
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[0].length; j++) {
boolean res = this.dfs(matrix, i, j, str, 0);
if(res) {
return res;
}
}
}
return false;
}
public boolean dfs(char[][] matrix, int i, int j, String str, int k) {
// TODO Auto-generated method stub
if (k >= str.length()) {
return true;
}
if ( i < 0 || i >= matrix.length || j < 0 || j >= matrix[0].length||matrix[i][j] != str.charAt(k)) {
return false;
}
char c = matrix[i][j];
matrix[i][j] = '#';
boolean res= dfs(matrix, i+1, j, str, k+1) ||
dfs(matrix, i, j+1, str, k+1)||
dfs(matrix, i-1, j, str, k+1)||
dfs(matrix, i, j-1, str, k+1);
matrix[i][j] = c;
return res;
}
}