先看原题:
两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。给你两个整数 x 和 y,计算并返回它们之间的汉明距离。
示例:
输入:x = 1, y = 4
输出:2
下面是我的思路:
既然是求二进制位不同位置数目,那么可以很自然的想到二进制的异或操作,对于异或操作后的数去除其二进制位中的0,剩下的就是题目中需要的汉明距离了。
代码如下
public int hammingDistance(int x, int y) {
int a=x^y;
String s = Integer.toBinaryString(a);
String replace = s.replace("0", "");
return replace.length();
}
下面是官方的代码:
class Solution {
public int hammingDistance(int x, int y) {
return Integer.bitCount(x ^ y);
}
}