自己寫的
class Solution: def hammingWeight(self, n: int) -> int: # 將整數 n 轉換為二進位制字串,去除字首 '0b' n_str = bin(n)[2:] # 用於儲存 '1' 的列表 res_li = [] # 遍歷二進位制字串的每一位 for i in n_str: # 如果當前位是 '1',則加入列表 if int(i): res_li.append(i) # 返回 '1' 的個數(列表的長度) return len(res_li)
位運算:使用n&=n-1
class Solution: def hammingWeight(self, n: int) -> int: # 初始化計數器 count = 0 # 當 n 不為零時,執行迴圈 while n: # 透過 n &= n - 1 操作,將 n 的最低位 '1' 置零 n &= n - 1 # 每置零一次,計數器加一 count += 1 # 返回 '1' 的個數 return count