class Solution {
public boolean exist(char[][] board, String word) {
for (int i = 0; i < board.length; i++) {
for (int i1 = 0; i1 < board[0].length; i1++) {
if (dfs(i, i1, board, 0, word)) return true;
}
}
return false;
}
int[] dx = {0, 0, -1, 1};
int[] dy = {-1, 1, 0, 0};
public boolean dfs(int x, int y, char[][] board,int u, String word) {
if (board[x][y] != word.charAt(u)) return false;
if (u == word.length() - 1) return true;
char c = board[x][y];
board[x][y] = '.';
for (int i = 0; i < dx.length; i ++) {
int x1 = x + dx[i], y1 = y + dy[i];
if (x1 >= 0 && x1 < board.length && y1 >= 0 && y1 < board[0].length && board[x1][y1] != '.') {
if (dfs(x1, y1, board, u + 1, word)) return true;
}
}
board[x][y] = c;
return false;
}
}
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交