Welcome to Subscribe On Youtube

693. Binary Number with Alternating Bits

Description

Given a positive integer, check whether it has alternating bits: namely, if two adjacent bits will always have different values.

 

Example 1:

 Input: n = 5 Output: true Explanation: The binary representation of 5 is: 101 

Example 2:

 Input: n = 7 Output: false Explanation: The binary representation of 7 is: 111.

Example 3:

 Input: n = 11 Output: false Explanation: The binary representation of 11 is: 1011.

 

Constraints:

  • 1 <= n <= 231 - 1

Solutions

  • class Solution { public boolean hasAlternatingBits(int n) { n ^= (n >> 1); return (n & (n + 1)) == 0; } } 
  • class Solution { public: bool hasAlternatingBits(int n) { n ^= (n >> 1); return (n & ((long) n + 1)) == 0; } }; 
  • class Solution: def hasAlternatingBits(self, n: int) -> bool: n ^= n >> 1 return (n & (n + 1)) == 0 
  • func hasAlternatingBits(n int) bool { n ^= (n >> 1) return (n & (n + 1)) == 0 } 
  • impl Solution { pub fn has_alternating_bits(n: i32) -> bool { let t = n ^ (n >> 1); (t & (t + 1)) == 0 } } 

All Problems

All Solutions