Leetcode 461.汉明距离 By Python
2024-08-26 13:34:17
两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。
给出两个整数 x
和 y
,计算它们之间的汉明距离。
注意:
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')
最新文章
- [CentOs7]搭建ftp服务器(2)——添加用户
- 43. Multiply Strings
- Qt里获取目录的一个另类方法
- poj3461 Oulipo(KMP模板)
- 对象的比较与排序:IComparable和IComparer接口
- 前端学习之本地储存与cookie
- const 与指针
- xml基础学习笔记04
- Linux流量监控工具 - iftop (最全面的iftop教程)
- 浅析JavaScript解析赋值、浅拷贝和深拷贝的区别
- python中剔除字典重复项,可以使用集合(set)。
- GNU C 与 ANSI C(下)
- The Little Prince-12/16
- HTML图片热区map area的用法(转)
- BZOJ 1011--[HNOI2008]遥远的行星(乱搞)
- BZOJ4103 异或运算
- C#编程(二十九)----------泛型接口
- .Net应用程序 参照的组合没有安装在您的系统中。 HRESULT: 0x800736B3
- w[wi].disabled = true;
- [GO]多任务的资源竞争问题