描述
两个整数的Hamming距离是对应比特位不同的个数。
给定两个整数x和y,计算两者的Hamming距离。
说明
0 ≤ x, y < 231
样例
- 样例1
输入: x = 1 和 y = 4
输出: 2
解释:
1的二进制表示是001
4的二进制表示是100
共有2位不同
- 样例2
输入: x = 5 和 y = 2
输出: 3
解释:
5的二进制表示是101
2的二进制表示是010
共有3位不同
解析
首先将两个数变成二进制,然后根据长度不同进行适当的补零,之后只需要对比不同位数的个数输出即可。
hammingDistance = function (x, y) {
res = 0
x = x.toString(2)
y = y.toString(2)
lenx = x.length
leny = y.length
if(lenx>leny) {
for(i=0;i<lenx-leny;i++){
y = '0' + y
}
}
if(lenx<leny ){
for(i=0;i<leny-lenx;i++){
x = '0' + x
}
}
for(i=0;i<x.length;i++){
if(x[i] != y[i]){
res++
}
}
return res
}