方法一:
获得n的最低位,将n右移一位,如果出现此时n的最低位和获得的最低位相同则返回false;
class Solution {
public boolean hasAlternatingBits(int n) {
while(n>0){
int a = n%2;
n = n>>1;
if((n&1) == a) return false;
}
return true;
}
}
方法二:
用 String bin = Integer.toBinaryString(n);
class Solution {
public boolean hasAlternatingBits(int n) {
String bin = Integer.toBinaryString(n);
int i = 0;
for(;i<bin.length();i++)if(bin.charAt(i)!=0) break;
i++;
for(;i<bin.length();i++){
if(bin.charAt(i)==bin.charAt(i-1)) return false;
}
return true;
}
}