1. 程式人生 > >LeetCode演算法題191:位1的個數解析

LeetCode演算法題191:位1的個數解析

編寫一個函式,輸入是一個無符號整數,返回其二進位制表示式中數字位數為 ‘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