LeetCode191 位1的個數

2022-06-22 05:06:10 字數 1080 閱讀 3120

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

示例1 :

輸入: 11

輸出: 3

解釋: 整數 11 的二進位制表示為 00000000000000000000000000001011

示例 2:

輸入: 128

輸出: 1

解釋: 整數 128 的二進位制表示為 00000000000000000000000010000000

設輸入的數為 n , 把 n 與 1 做二進位制的與 (and) 運算,即可判斷它的最低位是否為 1 。 如果是的話,把計數變數加一。然後把 n 向右移動一位, 重複上述操作。 當 n 變為 0 時, 終止演算法, 輸出結果。

class solution(object):

def hammingweight(self, n):

""":type n: int

:rtype: int

"""count = 0

while n > 0:

# n與上1,如果為1計數增加

if n & 1 == 1:

count += 1

# n右移一位

n >>= 1

return count

利用位運算n & n - 1可以消除最後一位 1 的特性,不斷消除 1 ,最後對操作次數計數即可。

Leetcode191 位1的個數

題目 編寫乙個函式,輸入是乙個無符號整數,返回其二進位制表示式中數字位數為 1 的個數 也被稱為漢明重量 輸入 11111111111111111111111111111101 輸出 31 解釋 輸入的二進位制串 11111111111111111111111111111101 中,共有 31 位為...

LeetCode 191 位1的個數

題意 編寫乙個函式,輸入是乙個無符號整數,返回其二進位制表示式中數字位數為 1 的個數 也被稱為漢明重量 lowbit n 定義為非負整數 n nn 在二進位制表示下最低位的 1 11 及其後邊所有的 0 00 構成的數值。方法一 n n 1 作用 將 n nn 的二進位制表示中最低位的 1 11 ...

LeetCode191 位1的個數

編寫乙個函式,輸入是乙個無符號整數,返回其二進位制表示式中數字位數為 1 的個數 也被稱為漢明重量 輸入 00000000000000000000000000001011 輸出 3 解釋 輸入的二進位制串 00000000000000000000000000001011 中,共有三位為 1 輸入 0...