题目:
两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。
给出两个整数 x 和 y,计算它们之间的汉明距离。
注意:
0 ≤ x, y < 231.
示例:
输入: x = 1, y = 4
输出: 2
解释:
1 (0 0 0 1)
4 (0 1 0 0)
↑ ↑
上面的箭头指出了对应二进制位不同的位置。
题目的理解:
将整数转化为二进制,然后再转化为字符串,进行字符串比较,得到不同的位数。
python实现
class Solution:
def hammingDistance(self, x: int, y: int) -> int:
left = '{:>035s}'.format(bin(x)).replace('0b', '')
right = '{:>035s}'.format(bin(y)).replace('0b', '')
count = 0
for index in range(33):
if left[index] != right[index]:
count += 1
return count
提交

成绩又有点差啊,再想想办法。
另一个解
直接使用异或计算。
class Solution:
def hammingDistance(self, x: int, y: int) -> int:
return bin(x ^ y).count('1')
思路简单清晰啊

但是结果差不多啊!!!
// END 春天来了,看着对岸的柳树已经长出很多新芽了。
网友评论