列表

详情


191. 位1的个数

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

 

提示:

 

示例 1:

输入:00000000000000000000000000001011
输出:3
解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 '1'。

示例 2:

输入:00000000000000000000000010000000
输出:1
解释:输入的二进制串 00000000000000000000000010000000 中,共有一位为 '1'。

示例 3:

输入:11111111111111111111111111111101
输出:31
解释:输入的二进制串 11111111111111111111111111111101 中,共有 31 位为 '1'。

 

提示:

 

进阶

相似题目

颠倒二进制位

2 的幂

比特位计数

二进制手表

汉明距离

交替位二进制数

二进制表示中质数个计算置位

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: int hammingWeight(uint32_t n) { } };

golang 解法, 执行用时: 0 ms, 内存消耗: 1.9 MB, 提交时间: 2021-07-26 14:11:27

func hammingWeight(num uint32) int {
    ans := 0
    for num != 0 {
        num = num & (num-1)
        ans += 1
    }
    return ans 
}

golang 解法, 执行用时: 0 ms, 内存消耗: 1.9 MB, 提交时间: 2021-03-29 11:52:11

func hammingWeight(num uint32) int {
    ans := 0
    for num != 0 {
        num = num & (num-1)
        ans += 1
    }
    return ans
}

python 解法, 执行用时: 28 ms, 内存消耗: N/A, 提交时间: 2018-08-25 12:29:22

class Solution(object):
    def hammingWeight(self, n):
        """
        :type n: int
        :rtype: int
        """
        return len(bin(n).replace('0', '')) - 1

上一题