兩個整數之間的 漢明距離 指的是這兩個數字對應二進位制位不同的位置的數目。
給定兩個整數x
和y
,計算並返回它們之間的漢明距離。
例如:說明:0 ≤ x, y ≤ 2^31 - 1給定兩個整數:x = 1, y = 4,返回結果:2
解釋:1 = (0 0 0 1)
4 = (0 1 0 0)
可以看出 1 和 4 對應二進位制位不同的位置的數目有 2 個。
def hammingdistance(x, y):
res = 0
# bin()方法 轉為二進位制數,zfill() 方法返回指定長度的字串
tmp_x, tmp_y = bin(x)[2:].zfill(32), bin(y)[2:].zfill(32)
for i in range(len(tmp_x)):
if tmp_x[i] != tmp_y[i]:
res += 1
return res
在二進位制的異或運算中,例如a=12,b=7,那麼a異或b的結果c計算如下:a = 0 0 0 0 1 1 0 0
b = 0 0 0 0 0 1 1 1
c = 0 0 0 0 1 0 1 1 (相同位的值為0,不同為1)
def hammingdistance(x, y):
return bin(x ^ y).count("1")
&
按位與運算子:參與運算的兩個二進位制數, 如果兩個相應位都為1, 則該位的結果為1, 否則為0;
>>
右移動運算子:如i >> 1
,表示將 i 對應的二進位制數整體右移一位,其實也就相當於i // 2
def hammingdistance(x, y):
res, count = x ^ y, 0
while res:
count += res & 1
res >>= 1
return count
python程式設計題彙總(持續更新中……) python 漢明距離運算
兩個整數之間的漢明距離指的是這兩個數字對應二進位制位不同的位置的數目。給出兩個整數x和y,計算它們之間的漢明距離。示例 輸入 x 1,y 4 輸出 2 解釋 1 0 0 0 1 4 0 1 0 0 上面的箭頭指出了對應二進位制位不同的位置。class solution object def hamm...
簡單題 461 漢明距離
力扣刷題 兩個整數之間的漢明距離指的是這兩個數字對應二進位制位不同的位置的數目。給出兩個整數 x 和 y,計算它們之間的漢明距離。注意 0 x,y 231.示例 輸入 x 1,y 4 輸出 2 解釋 1 0 0 0 1 4 0 1 0 0 上面的箭頭指出了對應二進位制位不同的位置。解題思路 解題關鍵...
漢明距離 Leetcode刷題 002
先來了解一下漢明距離 在資訊理論中,兩個等長字串之間的漢明距離是兩個字串對應位置的不同字元的個數。換句話說,它就是將乙個字串變換成另外乙個字串所需要替換的字元個數。例如 1011101 與 1001001 之間的漢明距離是 2。2143896 與 2233796 之間的漢明距離是 3。toned 與...