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
andy
, 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')