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	

Hamming Distance