191. Number of 1 Bits

problem

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.

Credits:
Special thanks to @ts for adding this problem and creating all test cases.

solution

解法取巧,直接转二进制,转string,转counter

import collections
class Solution(object):
    def hammingWeight(self, n):
        """
        :type n: int
        :rtype: int
        """
        
        n = collections.Counter(str(bin(n)))
        return n['1']
        

下面的解法比较合理

class Solution(object):
    def hammingWeight(self, n):
        res = 0
        while n > 0:
            res += n % 2
            n /= 2
        return res
posted @ 2016-11-21 10:39  Salmd  阅读(78)  评论(0)    收藏  举报