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;
    }
}