Codility - Binary Gap
by ne on 2022-02-16 under Algo/DS/Problems tagged with codility
Hi,
The problem description is in the comments above the solution below.
The problem belongs to Codility, you can try out it yourself on their platform.
/**
* 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.
*
* For example, number 9 has binary representation 1001 and contains a binary gap of length 2.
* The number 529 has binary representation 1000010001 and contains two binary gaps: one of length 4 and one of length 3. 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. The number 32 has binary representation 100000 and has no binary gaps.
*
*/
public class BinaryGap {
public int solution(int N) {
// write your code in Java SE 8
int m=0, max=0;
boolean started = false;
while(N != 0){
int p = N%2;
N/=2;
if(p==1){
if(started){
if(max<=m){
max=m;
}
m=0;
} else {
started = true;
}
} else {
if(started){
m++;
}
}
}
return max;
}
}