编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘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开始

相关文章:

  • 2021-07-14
  • 2022-01-11
  • 2022-01-09
  • 2021-06-16
  • 2022-03-07
猜你喜欢
  • 2021-08-17
  • 2021-05-19
  • 2021-11-14
  • 2022-12-23
  • 2021-06-30
  • 2022-01-22
  • 2021-12-03
相关资源
相似解决方案