两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。
给你两个整数 x 和 y,计算并返回它们之间的汉明距离。
官方解法:https://leetcode-cn.com/problems/hamming-distance/solution/yi-ming-ju-chi-by-leetcode-solution-u1w7/
解法一:位运算异或(我的解法)
class Solution:
def hammingDistance(self, x: int, y: int) -> int:
a = x ^ y
return bin(a).count("1")
解法二:Brian Kernighan 算法
class Solution:
def hammingDistance(self, x: int, y: int) -> int:
a = x ^ y
ret = 0
while a:
a &= a - 1
ret += 1
return ret
力扣 (LeetCode)链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xnyode/