LeetCode 461. Hamming Distance
Created at 2017-11-03 Updated at 2017-11-07 Category LeetCode
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.
0 <= x, y < 2^31.
Input: x = 1, y = 4
The above arrows point to positions where the corresponding bits are different.
The idea is easy to understand, you should use
>> to get the newest value, if the value is an odd number,
count += 1 , and
number = number - 1 to make it even until to
class Solution(object): def hammingDistance(self, x, y): """ :type x: int :type y: int :rtype: int """ z, count = x ^ y, 0 if z == 0: return 0 elif z % 2 == 0: return self.cal(z, count) else: count += 1 return self.cal(z, count) def cal(self, z, count): while z > 0: z >>= 1 if z % 2 != 0: count, z = count + 1, z - 1 return count