l191 number of 1 bits

题目描述

1
2
3
4
5
6
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&n-1

Python实现

1
2
3
4
5
6
7
8
9
10
11
12
class (object):
def hammingWeight(self, n):
"""
:type n: int
:rtype: int
"""
count = 0
while n>0:
if n%2:
count +=1
n /= 2
return count

Python实现

1
2
3
4
5
6
7
8
9
10
11
12
13
class (object):
def hammingWeight(self, n):
"""
:type n: int
:rtype: int
"""

count = 0

while n>0:
n = n &(n-1)
count+=1
return count