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.
算法分析:采用位操作一键搞定。
C语言版
int hammingDistance(int x, int y) {
int r, count = 0;
r = x ^ y;
while(r)
{
if(r % 2 == 1)
count++;
r = r >> 1;
}
return count;
}
Python版
class Solution(object):
def hammingDistance(self, x, y):
"""
:type x: int
:type y: int
:rtype: int
"""
count = 0
r = x ^ y
while(r):
if(r % 2 == 1):
count += 1;
r = r >> 1;
return count;