兩個整數之間的漢明距離指的是這兩個數字對應二進位制位不同的位置的數目。
給出兩個整數 x 和 y,計算它們之間的漢明距離。
注意:0 ≤ x, y < 231.
輸入: x = 1, y = 4最笨的辦法,把輸入的兩個整數轉為二進位制的列表,並把短的前面補0,對比兩個列表的各個元素,如果不一致,將結果加一,最後將結果返回。輸出: 2
解釋:1 (0 0 0 1)
4 (0 1 0 0)
↑ ↑
上面的箭頭指出了對應二進位制位不同的位置。
前面的解法看起來不太聰明的樣子,來改進一下。class
solution
:def
hammingdistance
(self, x:
int, y:
int)
->
int:
res =
0 x =
bin(x)
y =bin(y)
list_x =
list_y =
for i in x[2:
]:for i in y[2:
]:iflen
(list_x)
>
len(list_y)
: list_x, list_y = list_y, list_x
n =len(list_y)
-len
(list_x)
for i in
range
(n):
list_x.insert(0,
'0')
for i in
range
(len
(list_x)):
if list_x[i]
!= list_y[i]
: res +=
1return res
使用異或,一行搞定。
class
solution
(object):
defhammingdistance
(self, x, y)
:return
bin(x ^ y)
.count(
'1')
簡單題 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 與...
leetcode演算法題 461 漢明距離
兩個整數之間的漢明距離指的是這兩個數字對應二進位制位不同的位置的數目。給出兩個整數 x 和 y,計算它們之間的漢明距離。注意 0 x,y 231.示例 輸入 x 1,y 4 輸出 2 解釋 1 0 0 0 1 4 0 1 0 0 上面的箭頭指出了對應二進位制位不同的位置。class solution...