Description
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.
思路很简单,两个数字同时进行转化为二进制的过程,求2取余,比较余数是否不同即可。
代码如下:
class Solution(object):
def hammingDistance(self, x, y):
num = 0
while((x != 0) and (y != 0)):
if (x % 2) != (y % 2):
num += 1
x = int(x / 2)
y = int(y / 2)
while(x != 0):
if x % 2 != 0:
num += 1
x = int(x / 2)
while(y != 0):
if y % 2 != 0:
num += 1
y = int(y / 2)
print(num)
return num
def main():
n = Solution()
print(n.hammingDistance(1, 4))
if __name__ == '__main__':
main()