程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

【Leetcode刷題Python】191. 位1的個數

編輯:Python

1 題目

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

注意,輸入的是整型數值,不是字符串
示例 1:

輸入:00000000000000000000000000001011
輸出:3
解釋:輸入的二進制串 00000000000000000000000000001011 中,共有三位為 ‘1’。

2 解析

位運算:每次執行n & (n - 1) ,就會消除掉 n 的二進制中最後一個出現的 1。
執行 n & (n - 1) 使得 n 變成 0 的操作次數,就是 n 的二進制中 1 的個數。

3 Python實現

class Solution:
def hammingWeight(self, n: int) -> int:
res = 0
while n>0:
res+=1
n &=n-1
return res

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved