gpt4 book ai didi

Python异或汉明距离

转载 作者:太空宇宙 更新时间:2023-11-03 14:43:24 28 4
gpt4 key购买 nike


问题是

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)

最佳答案

此处您的代码不正确:您不应将二进制字符串转换为整数(当然不使用基数 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

关于Python异或汉明距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51457877/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com