# 1332. Number of 1 Bits

{% embed url="<https://www.lintcode.com/problem/number-of-1-bits/>" %}

偷懒暴力count

```python
class Solution:
    """
    @param n: an unsigned integer
    @return: the number of ’1' bits
    """
    def hammingWeight(self, n):
        # write your code here
        return str(bin(n)).count('1')
```

follow-up: 如果是个类似 10110000000000 这样的数字，最后一个1之后的digits其实就不需要遍历，可以改善平均时间复杂度。

```python
class Solution:
    """
    @param n: an unsigned integer
    @return: the number of ’1' bits
    """
    def hammingWeight(self, n):
        # write your code here
        bi = bin(n)[2:]
        res = 0;
        idx = 0
        while (int(bi) != 0) and idx <= len(bi)-1:
            if bi[idx] == '1':
                res += 1;
                # 把当前的1计算进去之后，就把它改成0，这样等所有1都算完，bi=0
                bi[idx] == 0
            idx += 1
        return res
```

##
