public class Solution {
public boolean exist(char[][] board, String word) {
if(board == null || board.length == 0){
return false;
}
if(word.length() == 0){
return true;
}
for(int i = 0; i < board.length; i++){
for(int j = 0; j < board[0].length; j++){
if(board[i][j] == word.charAt(0)){
boolean result = find(board, i, j, word, 0);
if(result)
return true;
}
}
}
return false;
}
private boolean find(char[][] board, int i, int j, String word, int start){
if(start == word.length()){
return true;
}
if (i < 0 || i>= board.length || j < 0 || j >= board[0].length ||
board[i][j] != word.charAt(start)){
return false;
}
board[i][j] = '#'; // should remember to mark it
boolean result = find(board, i - 1, j, word, start + 1)
|| find(board, i, j - 1, word, start + 1)
|| find(board, i + 1, j, word, start + 1)
|| find(board, i, j + 1, word, start + 1);
board[i][j] = word.charAt(start);
return result;
}
}
[LeetCode] 79. Word Search
于 2017-03-31 11:39:00 首次发布