693. Binary Number with Alternating Bits

1
2
3
4
5
6
class Solution {
public boolean hasAlternatingBits(int n) {
int x = (n ^ (n >>> 1)) + 1;
return (x & (x - 1)) == 0;
}
}

题目的输入数据可以保证不会发生越界,编写代码时注意位运算符号的优先级,如果记不住可以使用括号确保优先运算。

References

693. Binary Number with Alternating Bits