Skip to content

Commit 44a6d92

Browse files
committed
Ruby Solution for Word Search
1 parent 45fe669 commit 44a6d92

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

ruby/0079-word-search.rb

+37
Original file line numberDiff line numberDiff line change
@@ -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+
end
33+
end
34+
35+
return false
36+
37+
end

0 commit comments

Comments
 (0)