提出的问题:两个整数之间的汉明距离是指两个数对应的二进制位不同的位置的个数。给定两个整数x和y,计算它们之间的汉明距离。注意:0≤x,y<2^31。解题思路:对两个数进行二进制计算(使用递归算法),然后从两个二进制数的末尾比较每一位是否相等。如果其中一个二进制数遍历完,则判断另一个二进制数是否遍历完。如果没有遍历完,遍历剩下的位数,如果中位数为1,则汉明距离+1。(因为之前遍历的二进制数当前位一定是0)直接加上代码( ̄▽ ̄):class解决方法:#二进制转换defbina(self,num):b=''ifnum:b=self.bina(num//2)返回b+str(num%2)否则:返回bdefhammingDistance(self,x:int,y:int)->int:bin_x=self.bina(x)bin_y=self.bina(y)i=len(bin_x)-1j=len(bin_y)-1count=0whilei>=0andj>=0:ifbin_x[i]!=bin_y[j]:count+=1i-=1j-=1ifj>=0:whilej>=0:ifbin_y[j]=='1':count+=1j-=1ifi>=0:whilei>=0:ifbin_x[i]=='1':count+=1i-=1returncount耗时空间:原题链接:https://leetcode-cn.com/probl...
