zoukankan      html  css  js  c++  java
  • 领扣(LeetCode)交替位二进制数 个人题解

    给定一个正整数,检查他是否为交替位二进制数:换句话说,就是他的二进制数相邻的两个位数永不相等。

    示例 1:

    输入: 5
    输出: True
    解释:
    5的二进制数是: 101
    

    示例 2:

    输入: 7
    输出: False
    解释:
    7的二进制数是: 111
    

    示例 3:

    输入: 11
    输出: False
    解释:
    11的二进制数是: 1011
    

     示例 4:

    输入: 10
    输出: True
    解释:
    10的二进制数是: 1010

    做法比较直接明了,右移一次的末位二进制位和右移两次的末位二进制位对比,判断最后一位是否相同。循环到n为0,得到结果

    代码如下:

     1 class Solution {
     2     public boolean hasAlternatingBits(int n) {
     3         while(n>0)
     4         {
     5             if((n&1)==((n>>1)&1))
     6                 return false;
     7             n=n>>1;
     8         }
     9         return true;
    10     }
    11 }
  • 相关阅读:
    感知机学习笔记
    NOIP 模拟19
    NOIP 模拟17
    NOIP模拟14-16
    「动态规划」-数位dp专题
    8.5 NOIP 模拟测试 13
    8.3 NOIP 模拟12题解
    8.3 NOIP CE反思
    「分治」-cdq分治
    8.1 NOIP模拟11
  • 原文地址:https://www.cnblogs.com/axiangcoding/p/10091805.html
Copyright © 2011-2022 走看看