Binary Gap

EasyBit Manipulation

Solution

export function binaryGap(n: number): number {
  let answer = 0;
 
  let num = n;
  let lastIndex = -1;
  let currentIndex = 0;
  while (0 < num) {
    if ((num & 1) === 1) {
      if (0 <= lastIndex) {
        answer = Math.max(answer, currentIndex - lastIndex);
      }
      lastIndex = currentIndex;
    }
    num >>= 1;
    currentIndex += 1;
  }
 
  return answer;
}