LeetCode算法题目
题目
两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。
给出两个整数 x
和 y
,计算它们之间的汉明距离。
注意:
.
示例 :
输入: x = 1, y = 4
输出: 2
解释:
1 (0 0 0 1)
4 (0 1 0 0)
↑ ↑
上面的箭头指出了对应二进制位不同的位置。
解答
Python3
方法一:
class Solution:
def hammingDistance(self, x, y):
"""
:type x: int
:type y: int
:rtype: int
"""
#自定义十进制转二进制函数
def dec2bin(num):
num_bin = []
while num!= 0:
num_bin.append(num%2)
num = num // 2
return num_bin[::-1]
x_bin = dec2bin(x)
y_bin = dec2bin(y)
while len(x_bin) != len(y_bin):
if len(x_bin) < len(y_bin):
x_bin.insert(0,0)
else:
y_bin.insert(0,0)
num = 0
for i in range(len(x_bin)):
if x_bin[i] != y_bin[i]:
num += 1
return num
方法二:
class Solution:
def judgeCircle(self, moves):
"""
:type moves: str
:rtype: bool
"""
return list(bin(x^y)).count('1')