Skip to content

Commit fbfb8b4

Browse files
word search golang
1 parent 59377b0 commit fbfb8b4

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

go/79-Word-Search.go

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package main
2+
3+
func exist(board [][]byte, word string) bool {
4+
n := len(board)
5+
m := len(board[0])
6+
7+
var dfs func(i int, j int, curr int) bool
8+
dfs = func(i int, j int, curr int) bool {
9+
if i < 0 || j < 0 || i >= n || j >= m || curr == len(word) {
10+
return false
11+
}
12+
if board[i][j] != word[curr] || board[i][j] == '*' {
13+
return false
14+
}
15+
if curr == len(word)-1 {
16+
return true
17+
}
18+
19+
tmp := board[i][j]
20+
board[i][j] = '*'
21+
22+
res := dfs(i+1, j, curr+1) || dfs(i-1, j, curr+1) || dfs(i, j-1, curr+1) || dfs(i, j+1, curr+1)
23+
24+
board[i][j] = tmp
25+
26+
return res
27+
}
28+
29+
for i := 0; i < n; i++ {
30+
for j := 0; j < m; j++ {
31+
if dfs(i, j, 0) {
32+
return true
33+
}
34+
}
35+
}
36+
37+
return false
38+
}

0 commit comments

Comments
 (0)