- func hasAlternatingBitsNaive(n int) bool {
- for mask := ^(n & 1); n != 0; n >>= 1 {
- next := n & 1
- if mask == next {
- return false
- }
- mask = next
- }
- return true
- }
- func hasAlternatingBits(n int) bool {
- for n ^= n >> 1; n != 0 && n&1 == 1; n >>= 1 {
- }
- return n == 0
- }
|