g152xx
  • g152xx
A binary gap within a positive integer N is any maximal sequence of consecutive zeros that is surrounded by ones at both ends in the binary representation of N. E.g.: The number 20 has binary representation 10100 and contains one binary gap of length 1. The number 15 has binary representation 1111 and has no binary gaps. Write a function: class Solution { public int binary_gap(int N); } that, given a positive integer N, returns the length of its longest binary gap. The function should return 0 if N doesn't contain a binary gap.
Computer Science
  • Stacey Warren - Expert brainly.com
Hey! We 've verified this expert answer for you, click below to unlock the details :)
SOLVED
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
chestercat
  • chestercat
I got my questions answered at brainly.com in under 10 minutes. Go to brainly.com now for free help!
anonymous
  • anonymous
this seems pretty hard of a problem
asnaseer
  • asnaseer
just thinking aloud, I would approach it along the lines of: maxGap = 0 inGap = false while N > 0 if N % 2 == 1 if inGap AND gapLength > maxGap maxGap = gapLength inGap = true gapLength = 0 else: gapLength++ N = N >> 1 return maxGap
anonymous
  • anonymous
I made this program in python (just create a file with ".py" in the end put the code in it and use "python nameOfFile.py number", where 'number' can be any integer): """ Get the Max Gap """ import sys import re if __name__ == '__main__': number = int(sys.argv[1]) binNumber = bin(number) strBinNumber = binNumber.__str__() strBinNumber = re.split("0b", strBinNumber)[1] maxGap = 0 counter = 0 firstFound = False for c in list(strBinNumber): if c == '1': firstFound = True if maxGap < counter: maxGap = counter counter = 0 else: if firstFound: counter+=1 print(strBinNumber) print(maxGap)

Looking for something else?

Not the answer you are looking for? Search for more explanations.

More answers

g152xx
  • g152xx
Thank you very much all of you, I can't give 2 medals but @asnasser I'll prepare one for you on the next one. Thanks much.
asnaseer
  • asnaseer
yw :)
anonymous
  • anonymous
I made this program in Java public int maxBinaryGap(int number) { int maxGap = 0; boolean inGap = false; int gapLength = 0; while (number > 0) { if (number % 2 == 1) { if (inGap && gapLength > maxGap) { maxGap = gapLength; } inGap = true; gapLength = 0; } else { gapLength++; } number = number >> 1; } return maxGap; }

Looking for something else?

Not the answer you are looking for? Search for more explanations.