Leetcode 191.位1的个数 By Python

Posted MartinLwx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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开始

以上是关于Leetcode 191.位1的个数 By Python的主要内容,如果未能解决你的问题,请参考以下文章

[leetcode]191. 位1的个数

leetcode191. 位1的个数

LeetCode--191--位1的个数

leetcode每日一题-191:位1的个数

LeetCode 191.位1的个数

leetcode刷题笔记191 位1的个数