The Hamming distance between two integers is the number of positions at which the corresponding bits are different.

Given two integers x and y, calculate the Hamming distance.

Note:
0 ≤ xy < 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.

Subscribe to see which companies asked this question


import math
class Solution(object):
    def comp_bits(self, x, nums):
        ans = [0 for i in range(nums)]
        for i in range(nums):
            if x % 2 == 1:
                ans[i] = 1
            x = x//2
        return ans
        
        
    def hammingDistance(self, x, y):
        """
        :type x: int
        :type y: int
        :rtype: int
        """
        if x == 0 and y == 0:
            return 0
        nums = int(math.log(max(x,y),2))+1
        ans1 = self.comp_bits(x,nums)
        ans2 = self.comp_bits(y,nums)
        ans = 0 
       
        for i,j in zip(ans1,ans2):
            if i!=j:
                ans += 1
        return ans