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