本文共 1013 字,大约阅读时间需要 3 分钟。
class Solution { public static boolean exist(char[][] board, String word) { char[] str0 = word.toCharArray(); int row = board.length; int col = board[0].length; boolean[][] visited = new boolean[row][col]; for (int i = 0; i < board.length; i++) { for (int j = 0; j < board[0].length; j++) { if (dfs(board, str0, 0, i, j, visited)) { return true; } } } return false; } private static boolean dfs(char[][] board, char[] word, int wi, int i, int j, boolean[][] visited) { // TODO Auto-generated method stub if (wi == word.length) return true; if (i < 0 || j < 0 || i >= board.length || j >= board[0].length) { return false; } if (visited[i][j]) return false; if (word[wi] != board[i][j]) return false; visited[i][j] = true; boolean result = dfs(board, word, wi + 1, i, j + 1, visited) || dfs(board, word, wi + 1, i - 1, j, visited) || dfs(board, word, wi + 1, i + 1, j, visited) || dfs(board, word, wi + 1, i, j - 1, visited); visited[i][j] = false; return result; }}
转载地址:http://ctern.baihongyu.com/