美文网首页
[LeetCode][Python]191. Number of

[LeetCode][Python]191. Number of

作者: bluescorpio | 来源:发表于2017-05-09 18:00 被阅读72次

Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also known as the Hamming weight).

For example, the 32-bit integer ’11' has binary representation 00000000000000000000000000001011, so the function should return 3.

思路:

使用n与0xffffffff 相与得到unsigned的数值,然后使用bin()方法得到二进制表达,然后使用count方法,得到1的个数。

思路二:

使用n&(n-1), 对于一个数的二进制表达 n = XXXXXX1000, n - 1 is XXXXXX0111。n & (n - 1) will be XXXXXX0000 which is just cancel the last 1

class Solution(object):
    def hammingWeight(self, n):
        """
        :type n: int
        :rtype: int
        """
        n = n & 0xffffffff
        return bin(n).count("1")
def hammingWeight(self, n):
    """
    :type n: int
    :rtype: int
    """
    c = 0
    while n:
        n &= n - 1
        c += 1
    return c

相关文章

网友评论

      本文标题:[LeetCode][Python]191. Number of

      本文链接:https://www.haomeiwen.com/subject/ycjitxtx.html