Hamming Distance
The Hamming distance between two integers is the number of positions at which the corresponding bits are different.
Given two integers x and y, calculate the Hamming distance.
Note:
0 ≤ x, y < 231.
Example:
Input: x = 1, y = 4
Output: 2
Explanation:
1 (0 0 0 1)
4 (0 1 0 0)
↑ ↑
The above arrows point to positions where the corresponding bits are different.
题目大意:
将十进制数转换为二进制数,然后通过比较2个二进制数的每一位是否相同,来确定出不同的个数。
解题思路:
此题可以分为2步:
第一步:将十进制数字转换为二进制数字:参考上一题链接
第二步:将转换后的二进制数个数通过补0来使之相等,然后通过zip函数转换为元组形式的zip对象再转换列表,再对列表中的元组迭代进行比较。
python3代码实现:
class Solution(object):
def hammingDistance(self, x, y):
"""
:type x: int
:type y: int
:rtype: int
"""
x = str(bin(x)[2:])
y = str(bin(y)[2:])
len_x = len(x)
len_y = len(y)
if len_x < len_y:
x = '0' * (len_y - len_x) + x
else:
y = '0' * (len_x - len_y) + y
count = 0
z = list(zip(x, y))
for i in z:
if i[0] != i[1]:
count += 1
return count