1. 程式人生 > >Leetcode 191.位1的個數 By Python

Leetcode 191.位1的個數 By Python

ron weight 一個 count 二進制表示 lee () .com aid

編寫一個函數,輸入是一個無符號整數,返回其二進制表達式中數字位數為 ‘1’ 的個數(也被稱為漢明重量)。

示例 :

輸入: 11
輸出: 3
解釋: 整數 11 的二進制表示為 00000000000000000000000000001011

示例 2:

輸入: 128
輸出: 1
解釋: 整數 128 的二進制表示為 00000000000000000000000010000000

思路

用位操作即可,只有1&1才為1

代碼

class Solution(object):
    def hammingWeight(self, n):
        """
        :type n: int
        :rtype: int
        """
        ans = 0
        while n!=0:
            if n&1:
                ans += 1
            n >>= 1
        return ans

另解

python內置bin()函數可以將一個數轉換為2進制,然後count即可

bin_n = bin(n)
return bin_n[2:].count('1')    #開頭是0b,所以從2開始

Leetcode 191.位1的個數 By Python