题目

两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。

给出两个整数x和y,计算它们之间的汉明距离。
image.png

思路

一、位运算

通过异或计算出两个数之间哪些位置不同,即不同位为1。然后统计1的个数。

  1. class Solution:
  2. def hammingDistance(self, x: int, y: int) -> int:
  3. diff = x ^ y # 异或计算x和y哪些位上不同
  4. # 计算diff中1的个数
  5. count = 0
  6. while diff != 0:
  7. count += 1
  8. diff = diff & (diff - 1)
  9. return count