1. 程式人生 > >[LeetCode] Hamming Distance

[LeetCode] Hamming Distance

block 不同 exp 求解 calc example bsp span sta

The Hamming Distance between two integers is the number of positions at which the corresponding bits are different.

Given two integers x and y, calculate the Hamming distance.

Note:
0 ≤ x, y < 231.

Example:

Input: x = 1, y = 4

Output: 2

Explanation:
1   (0 0 0 1)
4   (0 1 0 0)
       ?   ?

The above arrows point to positions where the corresponding bits are different.

兩個字碼中不同位值的數目稱為漢明距離(Hamming distance),由此可得此題用XOR求解。

class Solution {
public:
    int hammingDistance(int x, int y) {
        int res = x ^ y;
        int count = 0;
        while (res) {
            if (res & 1)
                count++;
            res >>= 1;
        }
        return count;
    }
};

[LeetCode] Hamming Distance