0.code
class Solution {
public boolean exist(char[][] board, String word) {
if(board==null||board.length==0||board[0].length==0){
return false;
}
int row=board.length;
int col = board[0].length;
int[][] visit = new int[row][col];
for(int i=0;i<row;i++){
for(int j=0;j<col;j++){
visit[i][j] = 0;
}
}
for(int i=0;i<row;i++){
for(int j=0;j<col;j++){
if(existHelp(board,i,j,visit,word,0)){
return true;
}
}
}
return false;
}
public boolean existHelp(char[][] board,int i,int j, int[][]visit, String word,int index){
if(index>=word.length()){
return true;
}
if(i<0||i>=board.length||j<0||j>=board[0].length){
return false;
}
if(board[i][j]==word.charAt(index)&&visit[i][j]==0){
visit[i][j] = 1;
if(existHelp(board,i-1,j,visit,word,index+1)||existHelp(board,i+1,j,visit,word,index+1)||existHelp(board,i,j-1,visit,word,index+1)||existHelp(board,i,j+1,visit,word,index+1)){
return true;
}
visit[i][j] = 0;
return false;
}else{
return false;
}
}
}
网友评论