zoukankan      html  css  js  c++  java
  • lc0319

    ✅ 693. 交替位二进制数

    https://leetcode-cn.com/problems/binary-number-with-alternating-bits/

    描述

    给定一个正整数,检查他是否为交替位二进制数:换句话说,就是他的二进制数相邻的两个位数永不相等。
    
    示例 1:
    
    输入: 5
    输出: True
    解释:
    5的二进制数是: 101
    示例 2:
    
    输入: 7
    输出: False
    解释:
    7的二进制数是: 111
    示例 3:
    
    输入: 11
    输出: False
    解释:
    11的二进制数是: 1011
     示例 4:
    
    输入: 10
    输出: True
    解释:
    10的二进制数是: 1010
    

    解答

    遍历每个二进制位,然后 比较前面的和自己:如果和自己一样,则return false;
    如果走到最后(by 判断 n > 0 ) 都是 不一样,则return true

    c

    bool hasAlternatingBits(int n){
        int tmp = n & 1;
        n >>= 1;
        while (n > 0) {
            if ((n & 1) == tmp) return false;
            else {
                tmp = n & 1;
                n >>= 1;
            }
        }
        return true;
    }
    /*执行用时 :
    0 ms
    , 在所有 C 提交中击败了
    100.00%
    的用户
    内存消耗 :
    5.2 MB
    , 在所有 C 提交中击败了
    100.00%
    的用户*/
    

    py

    class Solution:
        def hasAlternatingBits(self, n: int) -> bool:
            return not ('11' in str(bin(n)) or '00' in str(bin(n)))
    
            '''
    执行用时 :
    36 ms
    , 在所有 Python3 提交中击败了
    49.09%
    的用户
    内存消耗 :
    13.6 MB
    , 在所有 Python3 提交中击败了
    6.52%
    的用户
            '''
    
    
    # 这简直就像 sql 一样nice的语句!!
    class Solution:
        def hasAlternatingBits(self, n: int) -> bool:
            return '11'  not in str(bin(n)) and '00' not in str(bin(n))
    '''
    执行用时 :
    36 ms
    , 在所有 Python3 提交中击败了
    49.09%
    的用户
    内存消耗 :
    13.5 MB
    , 在所有 Python3 提交中击败了
    6.52%
    的用户
    '''
    
  • 相关阅读:
    Hive sql
    Hive严格模式
    Hive 分区表和分桶表
    hive
    Hive内部表与外部表区别详解
    HDFS
    Hadoop
    MySQL数据库优化
    Mysql常用存储引擎介绍
    Day12-Mysql服务日志类型及增量恢复命令
  • 原文地址:https://www.cnblogs.com/paulkg12/p/12522880.html
Copyright © 2011-2022 走看看