汉明距离

汉明距离是使用在数据传输差错控制编码里面的,汉明距离是一个概念,它表示两个(相同长度)字对应位不同的数量,我们以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

 

posted @ 2017-02-18 01:25  小黄人python  阅读(6116)  评论(0编辑  收藏  举报