兩個整數之間的 漢明距離 指的是這兩個數字對應二進制位不同的位置的數目。
給你兩個整數 x 和 y,計算並返回它們之間的漢明距離。
示例 1:
輸入:x = 1, y = 4
輸出:2
解釋:
1 (0 0 0 1)
4 (0 1 0 0)
↑ ↑
上面的箭頭指出了對應二進制位不同的位置。
示例 2:
輸入:x = 3, y = 1
輸出:1
漢明距離:是對應位置上數字不同的位數。
計算 xx 和 yy 之間的漢明距離,可以先計算 x⊕y,即x異或y,然後統計結果中等於 1 的位數。
現在,原始問題轉換為比特計數問題。
class Solution:
def hammingDistance(self, x: int, y: int) -> int:
n = x ^ y
res = 0
while n:
res+=1
n &=n-1
return res