All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g0601_0700.s0693_binary_number_with_alternating_bits.Solution Maven / Gradle / Ivy

There is a newer version: 1.38
Show newest version
package g0601_0700.s0693_binary_number_with_alternating_bits;

// #Easy #Bit_Manipulation #2022_03_22_Time_0_ms_(100.00%)_Space_41.3_MB_(21.55%)

/**
 * 693 - Binary Number with Alternating Bits\.
 *
 * Easy
 *
 * 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
**/
public class Solution {
    public boolean hasAlternatingBits(int n) {
        int prev = -1;
        while (n != 0) {
            int v = n & 1;
            n = n >> 1;
            if (prev == v) {
                return false;
            }
            prev = v;
        }
        return true;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy