1. 程式人生 > >LeetCode-461. 漢明距離(python3)

LeetCode-461. 漢明距離(python3)

題目連結:

 漢明距離

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

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

注意:
0 ≤ xy < 231.

示例:

輸入: x = 1, y = 4

輸出: 2

解釋:
1   (0 0 0 1)
4   (0 1 0 0)
       ↑   ↑

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

解題思路:

第一步,將兩個數轉換成2進位制

第二步,由於轉換成2進位制後,兩個數的位數長度可能會不一樣,這就要讓位數少的來補齊。

第三步,設定計數變數,比較不同

解題程式碼

class Solution:
    def hammingDistance(self, x, y):
        """
        :type x: int
        :type y: int
        :rtype: int
        """
        
        count = 0
        a = bin(x)[2:]
        b = bin(y)[2:]
        # 少的位數補齊
        if len(a) > len(b):
            b = "0" * (len(a)-len(b)) + b
        else:
            a = "0" * (len(b)-len(a)) + a
        # 比較
        for i in range(len(a)):
            if a[i] != b[i]:
                count += 1
        
        print(count)
        return count

結果:通過