漢明距離是使用在數據傳輸差錯控制編碼里面的,漢明距離是一個概念,它表示兩個(相同長度)字對應位不同的數量,我們以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