Skip to content

Commit 435c3cd

Browse files
committed
Adding binary gap (easy, ruby).
1 parent 31406d0 commit 435c3cd

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

easy/binary-gap/sub.rb

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# @param {Integer} n
2+
# @return {Integer}
3+
def binary_gap(n)
4+
run = -1
5+
max_dist = -Float::INFINITY
6+
7+
n.to_s(2).chars.each do |ch|
8+
run += 1 if max_dist > -Float::INFINITY
9+
if ch == '1'
10+
run = 0 if run < 0
11+
max_dist = [max_dist, run].max
12+
run = 0 if run > 0
13+
end
14+
end
15+
16+
[max_dist, 0].max
17+
end
18+
19+
binary_gap(22)
20+
21+
binary_gap(5)
22+
binary_gap(6)
23+
binary_gap(8)
24+
25+
1.upto(100) { |n| puts binary_gap(n) }

0 commit comments

Comments
 (0)