[LeetCode]461.Hamming Distance

来源:互联网 发布:项羽有多厉害知乎 编辑:程序博客网 时间:2024/05/22 13:01

简介

这是LeetCode中461题,汉明距离就是两个二进制表示的数字,对应位置数字不相同的位置数,比如1(0001)和4(0100)有两位不同,所以这两个数字的汉明距离为2。汉明距离在通信领域中的差错控制编码中有很重要的应用。

思路

首先将两个数字按位异或,对得到的数求1的个数,这一步借鉴了《程序员面试宝典》中的第三题(记得好像是,不是的话也是前5个)中的方法。

代码

class Solution {public:    int hammingDistance(int x, int y) {        int z = x^y;        int count = 0;        while(z!=0)        {            z = z&(z-1);            count++;        }        return count;    }};