835. Hamming距离

835. Hamming距离

中文English

两个整数的Hamming距离是对应比特位不同的个数。
给定两个整数x和y,计算两者的Hamming距离。

样例

样例1

输入: x = 1 和 y = 4
输出: 2
解释:
1的二进制表示是001
4的二进制表示是100
共有2位不同

样例2

输入: x = 5 和 y = 2
输出: 3
解释:
5的二进制表示是101
2的二进制表示是010
共有3位不同

注意事项

0 ≤ xy < 231

 
输入测试数据 (每行一个参数)如何理解测试数据?
class Solution:
    """
    @param x: an integer
    @param y: an integer
    @return: return an integer, denote the Hamming Distance between two integers
    """
    '''
    大致思路:
    1.得到x和y的二进制数[2:],短的前面需要补上'0',差多少位补多少位
    2.循环进行比较,看有多少位不同
    '''
    def hammingDistance(self,x,y):
        x_bin,y_bin = bin(x)[2:],bin(y)[2:]

        if len(x_bin) > len(y_bin):
            for j in range(abs(len(x_bin)-len(y_bin))):
                y_bin = '0' + y_bin
        else:
            for j in range(abs(len(x_bin)-len(y_bin))):
                x_bin = '0' + x_bin
        
        count = 0 
        for i in range(len(x_bin)):
            if x_bin[i] != y_bin[i]:
                count += 1
        return count 

 

 

posted @ 2020-03-25 01:02  风不再来  阅读(183)  评论(0编辑  收藏  举报