問題
給兩個整數x
與y
,計算兩者的 Hamming Distance 。 ## 輸入 ## x = 1, y = 4 ## 輸出 ## 2 ## 方法 ## 所謂的 Hamming Distance 就是兩個string
中有幾個相異的位元個數,舉個例子:
1 = (0 0 0 1)
4 = (0 1 0 0)
↑ ↑
1 跟 4 有兩個相異的位元個數,因此 1 跟 4 的 Hamming Distance 為 2 。
我們可以很直覺的想到可以用 exclusive or 簡單的計算出來,也就是兩個 bit 相同時輸出 0 ,兩個 bit 相異時輸出 1 ,最後再計算總共有幾位數為 1 即可。
1
2
3class Solution(object):
def hammingDistance(self, x, y):
return bin(x^y).count("1")