题目
两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。
给出两个整数 x 和 y,计算它们之间的汉明距离。
解题方法
- 方法1
- 将int整型的数据转化为二进制数据的字符串,然后对比字符串的每一个位置,不同则加1.
- 方法2
- 采用异或的方式计算
- 知识点: 进行异或计算时,a异或b为1,即当a是0,b是1或者a是1,b是0时。即就是相同为0,不同为1.
代码
-方法1
// 转为2进制字符串
class Solution:
def hammingDistance(self, x: int, y: int) -> int:
a = "{0:b}".format(x).zfill(256)
b = "{0:b}".format(y).zfill(256)
n =0
for i in range(len(a)):
if a[i] != b[i]:
n = n+1
return n
-方法2
// 异或计算
class Solution:
def hammingDistance(self, x: int, y: int) -> int:
n = bin(x^y).count('1')
return n