Skip to content

Commit 5d1df05

Browse files
authored
Create Word Search
1 parent cd1e437 commit 5d1df05

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

Word Search

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
class Solution {
2+
public boolean exist(char[][] board, String word) {
3+
for(int i = 0; i<board.length; i++){
4+
for(int j = 0; j<board[i].length; j++){
5+
if(board[i][j] == word.charAt(0) && traverse(board, "", word, i, j)){
6+
return true;
7+
}
8+
}
9+
}
10+
return false;
11+
}
12+
public boolean traverse(char[][] board, String word, String real, int i, int j){
13+
if(word.equals(real)){
14+
return true;
15+
}
16+
if(word.length() != 0 && real.indexOf(word) < 0){
17+
return false;
18+
}
19+
if(i<0 || i>=board.length || j<0 || j>=board[0].length){
20+
return false;
21+
}
22+
if(board[i][j] == '0') return false;
23+
char temp = board[i][j];
24+
word+=temp+"";
25+
board[i][j] = '0';
26+
if(traverse(board, word, real, i, j-1)) return true;
27+
if(traverse(board, word, real, i, j+1)) return true;
28+
if(traverse(board, word, real, i-1, j)) return true;
29+
if(traverse(board, word, real, i+1, j)) return true;
30+
word = word.substring(0, word.length()-1);
31+
board[i][j] = temp;
32+
return false;
33+
}
34+
}

0 commit comments

Comments
 (0)