LeetCode 461 漢明距離

2021-08-19 16:11:18 字數 1174 閱讀 1077

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

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

注意:

0 ≤x,y< 231.

我一直都覺得我自己寫python一股c味兒############################################

import math

class solution:

def hammingdistance(self, x, y):

n_x=abs(x)

n_y=abs(y)

count=0

if n_x==n_y==0:

return 0

for i in range(int(math.log(max(n_x,n_y),2))+1):

if (int(n_x)%2) != (int(n_y)%2):

count=count+1

n_x=n_x/2

n_y=n_y/2

return count

def

hammingdistance

(x, y):

# 將x與y自動轉化成二進位制,然後取亦或(對二進位制而言,相同的變為0,不同的變為1)

xor = x ^ y

count = 0

for _ in range(32): # 這裡迴圈32次,以為題目條件輸入的數字是小於2^31

count += xor & 1

# &表示將兩個數轉化為2進製,按較短位數擷取比較,相同取1不同取0,然後得到的數字再轉化為10進製顯示。

xor = xor >> 1

# >>表示帶符號移位,**表示向右移一位(二進位制移位運算就相當於除以二取整)

return count

def

hammingdistance

(x, y):

# ^取了亦或後,轉化為2進製數,相同為0,不同為1。然後算1的個數,其實就相當於找不同的個數。

return bin(x ^ y).count('1')

耗時:48ms

LeetCode 461 漢明距離

兩個整數之間的漢明距離指的是這兩個數字對應二進位制位不同的位置的數目。給出兩個整數x和y,計算它們之間的漢明距離。注意 0 x,y 231.示例 輸入 x 1,y 4 輸出 2 解釋 1 0 0 0 1 4 0 1 0 0 上面的箭頭指出了對應二進位制位不同的位置。漢明距離指的是這兩個數字對應二進位...

LeetCode461 漢明距離

461.漢明距離 兩個整數之間的漢明距離指的是這兩個數字對應二進位制位不同的位置的數目。給出兩個整數x和y,計算它們之間的漢明距離。注意 0 x,y 231.示例 輸入 x 1,y 4 輸出 2 解釋 1 0 0 0 1 4 0 1 0 0 上面的箭頭指出了對應二進位制位不同的位置。解答 class...

LeetCode 461 漢明距離

兩個整數之間的漢明距離指的是這兩個數字對應二進位制位不同的位置的數目。給出兩個整數x和y,計算它們之間的漢明距離。注意 0 x,y 231.示例 輸入 x 1,y 4 輸出 2 解釋 1 0 0 0 1 4 0 1 0 0 上面的箭頭指出了對應二進位制位不同的位置。解題思路 由題目易知,把x,y異或...