劍指offer系列-面試題-15 - 二進制中1的個數 (python)

1. 題目

請實現一個函數,輸入一個整數,輸出該數二進制表示中1的個數。其中負數用補碼錶示。例如,9表示成二進制是1001, 有2位1。因此,如果輸入9,則該函數輸出2。

2. 解題思路

因爲涉及到了二進制,所以使用位運算

詳細思路移步 leetcode 面試題15. 二進制中 1 的個數(位運算,清晰圖解)

3. 代碼實現

3.1

class Solution:
	def hammingWeight(self, n):
		"""
		"""
		count = 0
		
		while n:
			count += 1
			n = (n-1) & n
			
		return count

4. 總結

num & 1的結果是,奇數爲1偶數爲0。

5. 參考文獻

[1] 劍指offer叢書

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章