Hamming Distance

Question

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 ≤ 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.

Tags

  • Bit Manipulation

Thought

Two ways to convert the integer into binary string in Python:

  • use format function: format(2, 'b').zfill(4) = 0010
  • use bin function: bin(2) = 0b10

Code

use format function

class Solution(object):
    def hammingDistance(self, x, y):
        """
        :type x: int
        :type y: int
        :rtype: int
        """
        stringX = format(x, 'b').zfill(32)
        stringY = format(y, 'b').zfill(32)
        distance = 0
        for i, chX in enumerate(stringX):
            chY = stringY[i]
            if chX != chY:
                distance += 1
        return distance

use bin function

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

results matching ""

    No results matching ""