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

给出两个整数 xy,计算它们之间的汉明距离。

注意:

0 ≤ x, y < 231.

示例:

输入: x = 1, y = 4

输出: 2

解释:
1 (0 0 0 1)
4 (0 1 0 0)
↑ ↑ 上面的箭头指出了对应二进制位不同的位置。

思路

依然是使用位操作,分别逐次取出两个数字的二进制位出来进行比较,比较不同即可

代码

class Solution(object):
def hammingDistance(self, x, y):
"""
:type x: int
:type y: int
:rtype: int
"""
ans = 0
while True:
if x==0 and y==0:
break
num1 = x&1
num2 = y&1
if num1 != num2:
ans += 1
x >>= 1
y >>= 1
return ans

另解

虽然位操作效率很高,但是我们处理2个数字是分开处理的,所以效率会有一定的下降

return bin(x^y)[2:].count('1')

最新文章

  1. [CentOs7]搭建ftp服务器(2)——添加用户
  2. 43. Multiply Strings
  3. Qt里获取目录的一个另类方法
  4. poj3461 Oulipo(KMP模板)
  5. 对象的比较与排序:IComparable和IComparer接口
  6. 前端学习之本地储存与cookie
  7. const 与指针
  8. xml基础学习笔记04
  9. Linux流量监控工具 - iftop (最全面的iftop教程)
  10. 浅析JavaScript解析赋值、浅拷贝和深拷贝的区别
  11. python中剔除字典重复项,可以使用集合(set)。
  12. GNU C 与 ANSI C(下)
  13. The Little Prince-12/16
  14. HTML图片热区map area的用法(转)
  15. BZOJ 1011--[HNOI2008]遥远的行星(乱搞)
  16. BZOJ4103 异或运算
  17. C#编程(二十九)----------泛型接口
  18. .Net应用程序 参照的组合没有安装在您的系统中。 HRESULT: 0x800736B3
  19. w[wi].disabled = true;
  20. [GO]多任务的资源竞争问题

热门文章

  1. 学习Key与Value的集合hashtable
  2. .NET的弹性及瞬间错误处理库Polly
  3. STM32 M3内核的位带操作原理及步骤
  4. 【SDOI2017】数字表格
  5. eclipse取消空格、等号、分号自动录入
  6. (11)学习笔记 ) ASP.NET CORE微服务 Micro-Service ---- Thrift高效通讯 (完结)
  7. Unity Jobsystem 详解实体组件系统ECS
  8. linux-流程控制语言
  9. Junit测试用例
  10. C#改变图片大小