Hamming Distance

TheHamming distancebetween two integers is the number of positions at which the corresponding bits are different.

Given two integersxandy, calculate the Hamming distance.

Note: 0 ≤x,y< 231.

Example:

Input:
 x = 1, y = 4


Output:
 2


Explanation:

1   (0 0 0 1)
4   (0 1 0 0)
       ↑   ↑

The above arrows point to positions where the corresponding bits are different.

分析

就是每次x,y位移然后 &1 ,然后2个^

也可以设置个m=1移动 像total hamming distance一样

class Solution:
    def hammingDistance(self, x, y):
        """
        :type x: int
        :type y: int
        :rtype: int
        """
        m = 1
        maxx = max(x,y)
        cnt = 0
        while m <= maxx:
            if (x&m) ^(y&m):
                cnt += 1
            m<<=1
        return cnt

class Solution:
    def hammingDistance(self, x, y):
        """
        :type x: int
        :type y: int
        :rtype: int
        """


        cnt = 0
        while x or y:
            if (x&1) ^(y&1):
                cnt +=1
            x>>=1
            y>>=1

        return cnt

用Bin

class Solution:
    def hammingDistance(self, x, y):
        """
        :type x: int
        :type y: int
        :rtype: int
        """
        return (bin(x^y)).count('1')

Last updated