We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 45fe669 commit 44a6d92Copy full SHA for 44a6d92
ruby/0079-word-search.rb
@@ -0,0 +1,37 @@
1
+def exist(board, word)
2
+ @rows = board.length
3
+ @cols = board[0].length
4
+ @board = board
5
+ @word = word
6
+ @path = Set.new()
7
+
8
+ set1 = @board.flatten.to_set
9
+ set2 = @word.split('').to_set
10
+ return false if !(set1 >= set2)
11
12
+ def dfs(r,c,i)
13
+ return true if i == @word.length()
14
+ return false if (r<0 || c<0 || r >= @rows || c >= @cols || @word[i] != @board[r][c] || @path.include?([r,c]))
15
16
+ @path.add([r,c])
17
18
+ result = (dfs(r+1,c,i+1) ||
19
+ dfs(r-1,c,i+1) ||
20
+ dfs(r,c+1,i+1) ||
21
+ dfs(r,c-1,i+1)
22
+ )
23
24
+ @path.delete([r,c])
25
26
+ return result
27
+ end
28
29
+ (0..@rows-1).each do |r|
30
+ (0..@cols-1).each do |c|
31
+ return true if dfs(r,c,0)
32
33
34
35
+ return false
36
37
+end
0 commit comments