LWC 53:693. Binary Number with Alternating Bits

LWC 53:693. Binary Number with Alternating Bits

传送门:693. Binary Number with Alternating Bits

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.

思路: 熟悉JAVA接口的知道,Integer类可以直接把数字转为2进制串。

代码如下:

    public boolean hasAlternatingBits(int n) {
        String binary = Integer.toBinaryString(n);
        char[] cs = binary.toCharArray();
        int bit = cs[0] - '0';
        for (int i = 1; i < cs.length; ++i) {
            if (bit == cs[i] - '0') return false;
            bit = cs[i] - '0';
        }
        return true;
    }

当然,你也可以自己解析每一位,代码如下:

    public boolean hasAlternatingBits(int n) {
        int bit = n >> 0 & 1;
        n >>= 1;
        while (n > 0) {
            if (bit == (n & 1)) return false;
            bit = n & 1;
            n >>= 1;
        }
        return true;
    }

或者合并到一块:

    public boolean hasAlternatingBits(int n) {
        int bit = -1;
        while (n > 0) {
            if (bit == (n & 1)) return false;
            bit = n & 1;
            n >>= 1;
        }
        return true;
    }    

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏linux驱动个人学习

高通msm8909耳机调试

1、DTS相应修改: DTS相关代码:kernel/arch/arm/boot/dts/qcom/msm8909-qrd-skuc.dtsi: 1 s...

8055
来自专栏增长技术

App Guide相关

##TourGuide https://github.com/worker8/TourGuide

822
来自专栏一个会写诗的程序员的博客

java.base.jmod

/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home/jmods$ jmod list java....

1172
来自专栏码匠的流水账

聊聊HystrixThreadPool

hystrix-core-1.5.12-sources.jar!/com/netflix/hystrix/HystrixThreadPool.java

921
来自专栏码匠的流水账

java9系列(五)Stack-Walking API

java9新增这个类的目的是提供一个标准API用于访问当前线程栈,之前只有Throwable::getStackTrace、Thread::getStackTr...

471
来自专栏c#开发者

Processing Binary Documents Through BizTalk Via Web Services[转]

Published 21 July 06 08:24 AM | rseroter Just finishing up a two-week BizTalk P...

3414
来自专栏MelonTeam专栏

Bitmap 源码阅读笔记

导语: Android 系统上的图片的处理,跟Bitmap 这个类脱不了关系,我们有必要去深入阅读里面的源码,以便在工作中能更好的处理Bitmap相关的问题...

2608
来自专栏我和未来有约会

silverlight beta 2 将在本周末发布.

太开心了,刚刚收到微软silverlight.net的邮件.  确定了 将在本周末发布beta2. 以下是部分邮件内容 引用: There are some...

2006
来自专栏余生开发

echarts太阳分布图-饼图来回穿梭

var dom = document.getElementById("container");

1412
来自专栏Pulsar-V

Save Camera Document

#pragma once #include "HCCamera.h" #include <time.h> #include <cstdio> #incl...

2908

扫码关注云+社区