LeetCodeSwift in LeetCode

LeetCode 461. 汉明距离 Hamming Dista

2019-07-25  本文已影响0人  1江春水

【题目描述】
两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。
给出两个整数 x 和 y,计算它们之间的汉明距离。

注意:
0 ≤ x, y < 2^31.

【示例】

输入: x = 1, y = 4

输出: 2

解释:
1   (0 0 0 1)
4   (0 1 0 0)
       ↑   ↑
上面的箭头指出了对应二进制位不同的位置。

【解】
1、二进制位不同的位置的数目:异或后1的个数就是

int hammingDistance(int x, int y) {
    int z = x^y;
    int count = 0;
    while(z!=0) {
        if(z%2==1){
            count++;
        }
        z /= 2;
    }
    return count;
}

Swift:

func hammingDistance1(_ x: Int, _ y: Int) -> Int {
    return (x^y).nonzeroBitCount
}
上一篇下一篇

猜你喜欢

热点阅读