package com.fishercoder.solutions;

/**
 * 693. Binary Number with Alternating Bits
 *
 * Given a positive integer, check whether it has alternating bits: namely, if two adjacent bits will always have different values.

 Example 1:
 Input: 5
 Output: True
 Explanation:
 The binary representation of 5 is: 101

 Example 2:
 Input: 7
 Output: False
 Explanation:
 The binary representation of 7 is: 111.

 Example 3:
 Input: 11
 Output: False
 Explanation:
 The binary representation of 11 is: 1011.

 Example 4:
 Input: 10
 Output: True
 Explanation:
 The binary representation of 10 is: 1010.
 */

public class _693 {
    public boolean hasAlternatingBits(int n) {
        String binaryStr = Integer.toBinaryString(n);
        for (int i = 1; i < binaryStr.length(); i++) {
            if (binaryStr.charAt(i - 1) == binaryStr.charAt(i)) {
                return false;
            }
        }
        return true;
    }
}

@@ -612,16 +612,56 @@
  _693 %7B%0A
+    public static class Solution1 %7B%0A    
     publ
@@ -695,24 +695,28 @@
 ts(int n) %7B%0A
+    
         Stri
@@ -757,16 +757,20 @@
 ing(n);%0A
+    
         
@@ -828,16 +828,20 @@
         
+    
 if (bina
@@ -898,24 +898,28 @@
             
+    
 return false
@@ -932,26 +932,33 @@
         
-%7D%0A
+    %7D%0A   
         
 %7D%0A      
@@ -941,34 +941,39 @@
    %7D%0A           
+ 
 %7D%0A
+    
         return t
@@ -977,16 +977,199 @@
 n true;%0A
+        %7D%0A    %7D%0A    public static class Solution2 %7B%0A        public boolean hasAlternatingBits_oneline(int n) %7B%0A            return Integer.bitCount(((n %3E%3E 1) %5E n) + 1) == 1;%0A        %7D%0A
     %7D%0A%7D%0A

Update _693.java (#42)