1.题目详情
两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。
给出两个整数 x 和 y,计算它们之间的汉明距离。
2.解题思路
法1
左右指针分别指向两个二进制的数字,如果不同计数器加一
法2
异或^,二进制相同为0,不同为1,最后数出计算为1的个数
3.代码实现
class Solution:
def hammingDistance(self, x: int, y: int) -> int:
x = bin(x)[2:].zfill(32)
y = bin(y)[2:].zfill(32)
l,r = 0,0
count = 0
for l in range(len(x)):
if x[l] != y[r]:
count += 1
r += 1
return count
异或实现
class Solution:
def hammingDistance(self, x: int, y: int) -> int:
return bin(x^y).count('1')
4.知识点
^异或,相同为0,不同为1