leetcode_461 汉明距离

107 阅读1分钟

要求

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

给你两个整数 x 和 y,计算并返回它们之间的汉明距离。

示例 1:

输入:x = 1, y = 4
输出:2
解释:
1   (0 0 0 1)
4   (0 1 0 0)
       ↑   ↑
上面的箭头指出了对应二进制位不同的位置。

示例 2:

输入:x = 3, y = 1
输出:1

核心代码

class Solution:
    def hammingDistance(self, x: int, y: int) -> int:
        sums = 0
        if y < x:
            x,y = y,x
        while y != 0:
            i = x % 2
            j = y % 2
            if i != j:
                sums += 1
            x = x // 2
            y = y // 2
        return sums

image.png

解题思路:我们从题意中可以理解到两个数字对应二进制位不同的位置的数目,那么我们就是将两个数都变成2进制的数后在各位进行比较,比较简单。