LeetCode 汉明距离题解
2026/5/11 6:23:31 网站建设 项目流程

LeetCode 汉明距离题解

题目描述

给定两个整数 x 和 y,计算汉明距离,即两个数字对应二进制位不同的位置的数目。

示例

输入:x = 1,y = 4
输出:2

解题思路

方法:位运算

思路

  • 使用位运算来解决这个问题。
  • 将 x 和 y 进行异或运算,结果中 1 的个数就是汉明距离。
  • 使用 Brian Kernighan 算法计算异或结果中 1 的个数。

复杂度分析

  • 时间复杂度:O(k),其中 k 是整数的位数。
  • 空间复杂度:O(1)。

代码实现

方法:位运算

# 汉明距离(位运算)defhamming_distance(x,y):xor=x^y count=0whilexor:xor&=(xor-1)count+=1returncount# 测试deftest_hamming_distance():x=1y=4print(hamming_distance(x,y))# 输出:2x=3y=0print(hamming_distance(x,y))# 输出:2if__name__=="__main__":test_hamming_distance()

测试用例

测试用例 1:基本情况

输入:x = 1,y = 4
输出:2

测试用例 2:另一个例子

输入:x = 3,y = 0
输出:2

总结

汉明距离是一个经典的位运算问题,它可以通过位运算来高效地解决。

位运算的核心思想是:将 x 和 y 进行异或运算,结果中 1 的个数就是汉明距离。

掌握位运算的使用方法,对于解决类似的问题非常重要。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询