leetcode題解——461漢明距離

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


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


注意:

0 ≤ x, y < 231.


示例:
輸入: x = 1, y = 4
輸出: 2
解釋:
1   (0 0 0 1)
4   (0 1 0 0)
     ↑  ↑




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



解題思路:

    既然是求1之間的距離,那麼可以先異或,再移位的方式判斷


C++

class Solution {
public:
    int hammingDistance(int x, int y) {
        int orand = x ^ y;
        int count = 0;
        
        while(orand) {
            // 最低位是1
            if (orand & 0x1) {
                count++;
            }
            
            orand = orand >> 1;
        }
        
        return count;
    }
};



Python

class Solution:
    def hammingDistance(self, x: int, y: int) -> int:
        return bin(x^y).count('1')


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章