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