汉明距离是使用在数据传输差错控制编码里面的,汉明距离是一个概念,它表示两个(相同长度)字对应位不同的数量,我们以d(x,y)表示两个字x,y之间的汉明距离。
对两个字符串进行异或运算,并统计结果为1的个数,那么这个数就是汉明距离。
python的位操作:
描述符 | 描述
-----------------------
& | 与操作
-----------------------
| | 或操作
-----------------------
^ | 异或操作
-----------------------
>> | 左移位
-----------------------
<< | 右移位
python将十进制数字转换为二进制
>>>bin(4)
‘0b100‘
Python int型数据bit位 为32位
练习:给予两个int型数字,并计算他们的汉明距离
1 #!/usr/bin/env python3 2 # -*- coding: utf-8 -*- 3 4 class Solution(object): 5 def hammingDistance(self, x, y): 6 return bin(x^y).count(‘1‘) 7 8 if __name__ == ‘__main__‘: 9 x = int(input("input x:")) 10 y = int(input("input y:")) 11 print("Hamming Distance:",Solution().hammingDistance(x,y))
xuqiang@iZm5e4pvghzbqumk28o545Z:~/leetcode$ python3 hamming_distance.py input x:13 input y:7 Hamming Distance: 2
原文:http://www.cnblogs.com/xautxuqiang/p/6412153.html