LeetCode解題心得 二進位制中1的個數

2021-10-05 14:56:04 字數 878 閱讀 5561

請實現乙個函式,輸入乙個整數,輸出該數二進位制表示中 1 的個數。例如,把 9 表示成二進位制是 1001,有 2 位是 1。因此,如果輸入 9,則該函式輸出 2。

示例 1:

輸入:00000000000000000000000000001011

輸出:3

解釋:輸入的二進位制串 00000000000000000000000000001011 中,共有三位為 『1』。

示例 2:

輸入:00000000000000000000000010000000

輸出:1

解釋:輸入的二進位制串 00000000000000000000000010000000 中,共有一位為 『1』。

示例 3:

輸入:11111111111111111111111111111101

輸出:31

解釋:輸入的二進位制串 11111111111111111111111111111101 中,共有 31 位為 『1』。

使用與運算和右移運算子

& 按位與運算子:參與運算的兩個值,如果兩個相應位都為1,則該位的結果為1,否則為0,相當於隱式地將n轉化為二進位制,用右移運算子遍歷每一位,統計1的個數

右移動運算子:把">>"左邊的運算數的各二進位全部右移若干位,>> 右邊的數字指定了移動的位數

class

solution

:def

hammingweight

(self, n:

int)

->

int:

ans =

0while n:

ans += n &

1 n = n >>

1return ans

二進位制 leetcode

5 toc 給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。class solution return result 給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現了三次。找出那個只出現了一次的元素。思路 某一位上1出現的次...

LeetCode 二進位制手錶

二進位制手錶頂部有 4 個 led 代表小時 0 11 底部的 6 個 led 代表分鐘 0 59 每個 led 代表乙個 0 或 1,最低位在右側。例如,上面的二進位制手錶讀取 3 25 給定乙個非負整數 n 代表當前 led 亮著的數量,返回所有可能的時間。案例 輸入 n 1 返回 1 00 2...

二進位制手錶(LeetCode)

二進位制手錶頂部有 4 個 led 代表小時 0 11 底部的 6 個 led 代表分鐘 0 59 每個 led 代表乙個 0 或 1,最低位在右側。例如,上面的二進位制手錶讀取 3 25 給定乙個非負整數 n 代表當前 led 亮著的數量,返回所有可能的時間。案例 輸入 n 1 返回 1 00 2...