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, word, board, 0)) return true;
}
}
return false;
}
int[] dx = new int[] {-1, 1, 0, 0};
int[] dy = new int[] {0, 0, -1, 1};
public boolean dfs(int x, int y, String word, char[][] board, int u) {
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 < 4; 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, word, board, u + 1))
return true;
}
}
board[x][y] = c;
return false;
}
}
单词搜索
最新推荐文章于 2022-03-11 10:28:15 发布