<LeetCode天梯>Day047 汉明距离(位运算+内置函数) | 初级算法 | Python

以下为我的天梯积分规则:


每日至少一题:一题积分+10分

若多做了一题(或多一种方法解答),则当日积分+20分(+10+10)

若做了三道以上,则从第三题开始算+20分(如:做了三道题则积分-10+10+20=40;做了四道题则积分–10+10+20+20=60)


初始分为100分

若差一天没做题,则扣积分-10分(周六、周日除外注:休息)

坚持!!!


初级算法

刷题目录

其他

<LeetCode天梯>Day047 汉明距离(位运算+内置函数) | 初级算法 | Python

题干

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


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


示例1:


输入:x = 1, y = 4

输出:2

解释:

1 (0 0 0 1)

4 (0 1 0 0)

↑ ↑

上面的箭头指出了对应二进制位不同的位置。


示例2:


输入:x = 3, y = 1

输出:1



位运算

分析:


先进行异或,然后计算1的数量,就是汉明距离。

class Solution:
    def hammingDistance(self, x: int, y: int) -> int:
        # 先进行异或
        xor = x ^ y

        # 在求1的个数

        return bin(xor).count('1')

应该是最简单的了吧,哈哈哈

<LeetCode天梯>Day047 汉明距离(位运算+内置函数) | 初级算法 | Python


上一篇:线性判别分析(LDA)与Fisher判别分析(FDA)降维原理


下一篇:Multi-way PCA——多维主成分分析