所谓汉明距离,这两个数字对应二进制位不同的位置的数目。关于这个东西应该还有一种汉明码在现在高校的《计算机组成原理》这个系列的课程里有讲吧....
哔哔没用..挂代码吧还是(别太堕落???)
class Solution:
def hammingDistance(self, x, y):
"""
:type x: int
:type y: int
:rtype: int
"""
sum = 0
s = bin(x^y)
for i in s:
if i == '1':
sum += 1
return sum
基本思路:
对位异或运算,然后累计1的个数。
这个题用Python的位运算是一种比较bug的解法吧.....^位运算符是没有进位的二进制对位相加(好像有的书也说是异或运算)...非常适合这种情况。位运算以后转二进制输出,注意一点就是转二进制之后在s里是按字符串存的...记得判定的时候是字符“1”
零坑任踏
月光下一片斑驳竹海