Binary Gap
public int binaryGap(int N) {
// write your code in Java SE 8
int gap=0, tgap=0;
int q = N/2;
int rm = N%2;
boolean startFlg = false;
while(q>0){
System.out.println(rm);
if(rm == 0 && startFlg) tgap++;
if(rm == 1){
if(tgap > gap) gap = tgap;
tgap = 0;
startFlg = true;
}
rm = q%2;
q = q/2;
}
if(tgap > gap) gap = tgap;
return gap;
}
Count bitmasks
public int countBitmasks(int A, int B, int C) {
// write your code in Java SE 8
double sum = 0;
sum = countConf(A) + countConf(B) + countConf(C);
sum -= countConf(A | B); // counted twice
sum -= countConf(A | C); // counted twice
sum -= countConf(C | B); // counted twice
sum += countConf(A | B | C); // removed twice
return (int) sum;
}
private double countConf(int A) {
String binaryStr = Integer.toBinaryString(A);
long count = binaryStr.chars().filter(ch -> ch == '0').count();
return Math.pow(2,count);
}