LeetCode漢明距離Swift

2022-06-14 15:09:11 字數 801 閱讀 6172

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

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

注意:0 ≤ x, y < 231.

示例:

輸入: x = 1, y = 4

輸出:

2解釋:

1 (000

1)4 (010

0)↑ ↑

上面的箭頭指出了對應二進位制位不同的位置。

思路一

class

solution

n = n >> 1

}

return

count

}}

備註:n = 0001 ^ 0100 = 0101 = 5 , 求韓明距離改為求 二進位制 n = 0101 中 1 的個數。

按位與,n & 1 , 每次可以獲得 n 的最後一位。計數加一。將 n 右移,左邊加0。迴圈

n = 0 時,停止計數。

思路二:效率更高一點

class

solution

return

count

}}

備註:n = n & (n - 1)  一次去掉 n 最後的乙個 1,例如 n = 1100 , n - 1 = 1011, n & (n - 1) = 1000

思路三:nonzerobitcount 函式就是 swift 中,int屬性,變為二進位制後非0個數

class

solution

}

應用:

leetcode 漢明距離

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

LeetCode 461 漢明距離

兩個整數之間的漢明距離指的是這兩個數字對應二進位制位不同的位置的數目。給出兩個整數x和y,計算它們之間的漢明距離。注意 0 x,y 231.我一直都覺得我自己寫python一股c味兒 import math class solution def hammingdistance self,x,y n ...

LeetCode 461 漢明距離

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