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')


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