想成为码农的初学者,从最简单的做起。
题目要求:
两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。
给出两个整数 x
和 y
,计算它们之间的汉明距离。
示例:
输入: x = 1, y = 4 输出: 2 解释: 1 (0 0 0 1) 4 (0 1 0 0) ↑ ↑ 上面的箭头指出了对应二进制位不同的位置。
解答:
class Solution(object):
def hammingDistance(self, x, y):
"""
:type x: int
:type y: int
:rtype: int
"""
binNum = bin(x^y).replace('0b','')
hanmingDis = binNum.count("1", 0, len(binNum))
return hanmingDis
注:
# 解题思路:
直接异或一下,获取处理后的二进制数字中“1”的个数即可
# 此题的主要问题包括:
- 如何将十进制的数转换为二进制表示
- 如何统计二进制位不同的位置个数
# 对于前一个问题,参考了这篇文章(https://blog.youkuaiyun.com/SharkToping/article/details/80702552)
# 后一个问题则是用了str.count()函数