1. 程式人生 > >python 漢明距離運算

python 漢明距離運算

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

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

示例:

輸入: x = 1, y = 4

輸出: 2

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

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

class Solution(object):
    def hammingDistance(self, x, y):
        """
        :type x: int
        :type y: int
        :rtype: int
        """
        a=x^y
        num = 0
        while a != 0:
            num += a & 1
            a >>= 1

        return num

ps:先是對x和y進行異或運算,能得出一個不同的位置為1的數,然後一個個數這個數中的1有多少個,就能得出漢明距離。一個數的二進位制與1進行位與運算能判斷這個數的末尾是否為1,如為1就得出1,否則為0。所以,a與1位與來一個個數這個數中的1有多少個。num與每次判斷來相加,最後得出1的數量