File tree 1 file changed +30
-0
lines changed
solution/0079.Word Search
1 file changed +30
-0
lines changed Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ private char [] cs ;
3
+ private char [][] board ;
4
+ public boolean exist (char [][] board , String word ) {
5
+ this .cs = word .toCharArray ();
6
+ this .board = board ;
7
+ for (int i = 0 ; i < board .length ; i ++) {
8
+ for (int j = 0 ; j < board [i ].length ; j ++) {
9
+ if (board [i ][j ] == cs [0 ] && backtrack (i , j , 0 )) return true ;
10
+ }
11
+ }
12
+ return false ;
13
+ }
14
+ private boolean backtrack (int i , int j , int k ) {
15
+ if (board [i ][j ] == cs [k ]) {
16
+ if (k == cs .length - 1 ) return true ;
17
+ char cache = board [i ][j ];
18
+ board [i ][j ] = 0 ;
19
+ k ++;
20
+ if ( i > 0 && backtrack (i - 1 , j , k )
21
+ || i < board .length - 1 && backtrack (i + 1 , j , k )
22
+ || j > 0 && backtrack (i , j - 1 , k )
23
+ || j < board [i ].length - 1 && backtrack (i , j + 1 , k )) {
24
+ return true ;
25
+ }
26
+ board [i ][j ] = cache ;
27
+ }
28
+ return false ;
29
+ }
30
+ }
You can’t perform that action at this time.
0 commit comments