zoukankan      html  css  js  c++  java
  • Leetcode 191.位1的个数 By Python

    编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。

    示例 :

    输入: 11
    输出: 3
    解释: 整数 11 的二进制表示为 00000000000000000000000000001011
    

    示例 2:

    输入: 128
    输出: 1
    解释: 整数 128 的二进制表示为 00000000000000000000000010000000
    

    思路

    用位操作即可,只有1&1才为1

    代码

    class Solution(object):
        def hammingWeight(self, n):
            """
            :type n: int
            :rtype: int
            """
            ans = 0
            while n!=0:
                if n&1:
                    ans += 1
                n >>= 1
            return ans
    

    另解

    python内置bin()函数可以将一个数转换为2进制,然后count即可

    bin_n = bin(n)
    return bin_n[2:].count('1')    #开头是0b,所以从2开始
    
  • 相关阅读:
    HDU 4508
    HDU 4503
    HDU 4532
    HDU 4544
    HDU 3167 KMP
    HDU 4542
    HDU 4528
    【70】自然语言处理与词嵌入
    【69】循环神经网络
    【68】一维和三维卷积
  • 原文地址:https://www.cnblogs.com/MartinLwx/p/9694788.html
Copyright © 2011-2022 走看看