2
public boolean exist(char[][] board, String word) {3
boolean vis[][] = new boolean[board.length][board[0].length];4
for (int i = 0; i < board.length; i++) {5
for (int j = 0; j < board[0].length; j++) {6
if (word.charAt(0) == board[i][j]) {7
boolean is = isexist(i, j, board, vis, 1, word);15
static int dir[][] = {{1, 0}, {0, 1}, {-1, 0}, {0, -1}};17
static boolean isexist(int r, int c, char board[][], boolean vis[][], int idx, String word) {18
if (idx == word.length()) return true;20
for (int k = 0; k < 4; k++) {21
int rd = r + dir[k][0];22
int cd = c + dir[k][1];26
|| cd >= board[0].length27
|| vis[rd][cd] == true28
|| board[rd][cd] != word.charAt(idx)) continue;29
boolean is = isexist(rd, cd, board, vis, idx + 1, word);