Hamming Distance
Hamming Distance
Bit Manipulation
Problem Statement
The Hamming distance between two integers is the number of positions at which the corresponding bits are different. Given two integers x and y, return the Hamming distance between them.
Example
Example 1:
Input: x = 1, y = 4
Output: 2
Explanation:
1 (0 0 0 1)
4 (0 1 0 0)
The arrows point to the positions where the corresponding bits are different.
Solution (XOR + Bit Counting)
The Hamming distance is equivalent to the number of set bits (1s) in the result of XORing the two numbers. The XOR operation x ^ y will produce a number where a bit is 1 only if the corresponding bits in x and y are different.
Algorithm Steps
- First, calculate the XOR of
xandy. Let's call thisxor_result. - Initialize a
distancecounter to 0. - While
xor_resultis not 0, repeatedly do the following: - Use the trick
xor_result & (xor_result - 1)to clear the least significant set bit. - Increment the
distancecounter. - The final
distanceis the Hamming distance.
x
00000001
^
y
00000100
=
XOR Result
00000101
Counting Set Bits...
00000101
Distance: 0
Calculate XOR: 00000001 ^ 00000100 = 00000101
Hamming Distance Solution