Fork me on GitHub

[leetcode-693-Binary Number with Alternating Bits]

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.

 思路:

如果相邻两位相同则为false。

 bool hasAlternatingBits(int n) 
 {
        vector<int>bit;
    while(n>0)
    {
      bit.push_back(n%2);
      n/=2;
    }
    for(int i=1;i<bit.size();i++)
    {
      if(bit[i]==bit[i-1])return false;
    }
    return true;
 }
 

 

 

 

 

 

posted @ 2017-10-08 22:06  hellowOOOrld  阅读(165)  评论(0编辑  收藏  举报