码迷,mamicode.com
首页 > 其他好文 > 详细

693. Binary Number with Alternating Bits

时间:2020-04-18 22:43:40      阅读:74      评论:0      收藏:0      [点我收藏+]

标签:binary   strong   put   time   repr   long   int   ble   values   

Problem:

Given a positive integer, check whether it has alternating bits: namely, if two adjacent bits will always have different values.

Example 1:

Input: 5
Output: True
Explanation:
The binary representation of 5 is: 101

Example 2:

Input: 7
Output: False
Explanation:
The binary representation of 7 is: 111.

Example 3:

Input: 11
Output: False
Explanation:
The binary representation of 11 is: 1011.

Example 4:

Input: 10
Output: True
Explanation:
The binary representation of 10 is: 1010.

思路

Solution (C++):

bool hasAlternatingBits(int n) {
    long long m = n >> 1;
    return ((m+n) & (m+n+1)) == 0;
}

性能

Runtime: 0 ms??Memory Usage: 5.8 MB

思路

Solution (C++):

bool hasAlternatingBits(int n) {
    n ^= n >> 2;
    return (n & (n-1)) == 0;
}

性能

Runtime: 0 ms??Memory Usage: 5.9 MB

693. Binary Number with Alternating Bits

标签:binary   strong   put   time   repr   long   int   ble   values   

原文地址:https://www.cnblogs.com/dysjtu1995/p/12728495.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!