LeetCode演算法題191:位1的個數解析
阿新 • • 發佈:2018-11-11
編寫一個函式,輸入是一個無符號整數,返回其二進位制表示式中數字位數為 ‘1’ 的個數(也被稱為漢明重量)。
示例1:
輸入: 11
輸出: 3
解釋: 整數 11 的二進位制表示為 00000000000000000000000000001011
示例2:
輸入: 128
輸出: 1
解釋: 整數 128 的二進位制表示為 00000000000000000000000010000000
這個題應該沒什麼好說的。。。。直接移位逐個檢查是不是1就行。
C++原始碼:
class Solution {
public:
int hammingWeight(uint32_t n) {
int num = 0;
for (int i=0;i<32 ;i++)
{
num += n & 1;
n = n >> 1;
}
return num;
}
};
python3原始碼:
class Solution(object):
def hammingWeight(self, n):
"""
:type n: int
:rtype: int
"""
num = 0
for i in range(32):
num += (n >> i) & 1
return num