美文网首页LeetCodeSwift in LeetCode
LeetCode 461. 汉明距离 Hamming Dista

LeetCode 461. 汉明距离 Hamming Dista

作者: 1江春水 | 来源:发表于2019-07-25 12:01 被阅读0次

    【题目描述】
    两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。
    给出两个整数 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
    }
    

    相关文章

      网友评论

        本文标题:LeetCode 461. 汉明距离 Hamming Dista

        本文链接:https://www.haomeiwen.com/subject/wgocrctx.html