天天看點

<LeetCode天梯>Day047 漢明距離(位運算+内置函數) | 初級算法 | Python

以下為我的天梯積分規則:

每日至少一題:一題積分+10分

若多做了一題(或多一種方法解答),則當日積分+20分(+10+10)

若做了三道以上,則從第三題開始算+20分(如:做了三道題則積分-10+10+20=40;做了四道題則積分–10+10+20+20=60)

初始分為100分

若差一天沒做題,則扣積分-10分(周六、周日除外注:休息)

堅持!!!

初級算法

刷題目錄

其他

<LeetCode天梯>Day047 漢明距離(位運算+内置函數) | 初級算法 | Python

題幹

兩個整數之間的 漢明距離 指的是這兩個數字對應二進制位不同的位置的數目。

給你兩個整數 x 和 y,計算并傳回它們之間的漢明距離。

示例1:

輸入:x = 1, y = 4

輸出:2

解釋:

1 (0 0 0 1)

4 (0 1 0 0)

↑ ↑

上面的箭頭指出了對應二進制位不同的位置。

示例2:

輸入:x = 3, y = 1

輸出:1

位運算

分析:

先進行異或,然後計算1的數量,就是漢明距離。

class Solution:
    def hammingDistance(self, x: int, y: int) -> int:
        # 先進行異或
        xor = x ^ y

        # 在求1的個數

        return bin(xor).count('1')      

應該是最簡單的了吧,哈哈哈

<LeetCode天梯>Day047 漢明距離(位運算+内置函數) | 初級算法 | Python