693.交替位二进制数
解题思路:
package leadcode;
/**
* @author : icehill
* @description : 交替位二进制数
* 给定一个正整数,检查它的二进制表示是否总是 0、1 交替出现:换句话说,就是二进制表示中相邻两位的数字永不相同。
* 示例 1:
* 输入:n = 5
* 输出:true
* 解释:5 的二进制表示是:101
* 示例 2:
* 输入:n = 7
* 输出:false
* 解释:7 的二进制表示是:111.
* 来源:力扣(LeetCode)
* 链接:https://leetcode-cn.com/problems/binary-number-with-alternating-bits
* 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
* @date : 2021-05-24
*/
public class Solution693 {
public static void main(String[] args) {
Solution693 solution693 = new Solution693();
System.out.println(solution693.hasAlternatingBits(5));
System.out.println(solution693.hasAlternatingBits(11));
}
public boolean hasAlternatingBits(int n) {
while (n > 0) {
int a = n % 2;
n = n / 2;
if (a == (n & 1)) {
return false;
}
}
return true;
}
}