Python-XOR-hammingDistan

2024-07-05 14:39:41 发布

您现在位置:Python中文网/ 问答频道 /正文


问题是

Given two integers x and y, calculate the Hamming distance.

Note: 0 ≤ x, y < 231.

我试图使用^运算符,只计算结果str中的1个数,但是它并没有通过所有的测试用例。例如。93^73返回11188当它应该返回其他内容时。在

这是我的代码:

#hamming distance
class Solution(object):
    def hammingDistance(x, y):
        """
        :type x: int
        :type y: int
        :rtype: int
        """
        bin_x=int(bin(x)[2:])
    bin_y=int(bin(y)[2:])
    print(bin_x)
    print(bin_y)
    print(str(bin_x^bin_y))
    #.count('1'))
    hammingDistance(93,73)

Tags: andtheintegersbintypegivenintnote
1条回答
网友
1楼 · 发布于 2024-07-05 14:39:41

这里的代码不正确:不应该将二进制字符串转换为整数(当然不能使用以10为底的整数)。例如,由于bin(16)[2:]等于字符串'1000',您可以看到int(bin(16)[2:])等于实际的整数1000,这不是您想要的!在

在Python中,整数的^运算符已经为您查看它们的二进制表示。例如,在Python中,20 ^ 25直接计算为13,这是正确的答案,因为

  • 20的二进制表示是10100
  • 25的二进制表示是11001
  • 13的二进制表示是01101

现在,您可以使用Python的count函数来计算字符串中1个字符的数量,从而完成您的方法。例如,'01101'.count('1')的计算结果为3。在

相关问题 更多 >