Leetcode 461. Hamming Distance

leetcode

461. Hamming Distance

TheHamming distancebetween two integers is the number of positions at which the corresponding bits are different.

Given two integersxandy, calculate the Hamming distance.

Note:

0 ≤x,y< 231.

Example:

Input:x = 1, y = 4

Output:2

Explanation:1   (0 0 0 1)4   (0 1 0 0)       ↑   ↑The above arrows point to positions where the corresponding bits are different.

使用python语言编写

参见维基百科:

海(汉)明距离:在信息论中,两个等长字符串之间的汉明距离(英语:Hamming distance)是两个字符串对应位置的不同字符的个数。换句话说,它就是将一个字符串变换成另外一个字符串所需要替换的字符个数。

应用领域:汉明重量分析在包括信息论、编码理论、密码学等领域都有应用

实际应用:谷歌文本去重计算时,就使用到了海明距离。爬虫在对内容去重时也可用到该方法。

1.使用最原始的方法直接写

①将十进制转为二进制,转换后为0bxxxx,去除0b。

②通过判断将长度短的数,前面用0补齐。

③使用for循环对比每一位,不同的进行累加。

关键:str1 = bin(x)[2:]

           str1 = bin(x).replace('0b','')   #去处0b

2.运用运算符的特性(推荐)

1.使用按位异或运算符,特点:“相同得0,不同得1” , python中的表示是 ^

2.将按位异或过的数字,转换位二进制,并求出‘1’的数量。

return bin(x^y).count('1')

你可能感兴趣的:(Leetcode 461. Hamming Distance)