LeetCode#461 Hamming Distance

2017-08-26
程式解題/ LeetCode

問題

給兩個整數xy,計算兩者的 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
3
class Solution(object):
def hammingDistance(self, x, y):
return bin(x^y).count("1")