描述
Given a positive integer, check whether it has alternating bits: namely, if two adjacent bits will always have different values.
Example 1:
1 2 3 4
| Input: 5 Output: True Explanation: The binary representation of 5 is: 101
|
Example 2:
1 2 3 4
| Input: 7 Output: False Explanation: The binary representation of 7 is: 111.
|
Example 3:
1 2 3 4
| Input: 11 Output: False Explanation: The binary representation of 11 is: 1011.
|
Example 4:
1 2 3 4
| Input: 10 Output: True Explanation: The binary representation of 10 is: 1010.
|
分析
判断一个数的二进制表示是否是1010…这样交替的,方法很多。
解决方案1(Java)
1 2 3 4 5 6 7 8 9 10 11
| class Solution { public boolean hasAlternatingBits(int n) { String bits = Integer.toBinaryString(n); for (int i = 0; i < bits.length()-1; i++) { if (bits.charAt(i) == bits.charAt(i+1)) { return false; } } return true; } }
|
相关问题
(E) Number of 1 Bits