每日一題 漢明距離

2021-10-18 10:45:11 字數 1216 閱讀 1252

兩個整數之間的漢明距離指的是這兩個數字對應二進位制位不同的位置的數目。

給出兩個整數 x 和 y,計算它們之間的漢明距離。

注意:0 ≤ x, y < 231.

輸入: x = 1, y = 4

輸出: 2

解釋:1   (0 0 0 1)

4  (0 1 0 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...