输入: x = 1 和 y = 4
输出: 2
解释:
1的二进制表示是001
4的二进制表示是100
共有2位不同
样例2
输入: x = 5 和 y = 2
输出: 3
解释:
5的二进制表示是101
2的二进制表示是010
共有3位不同
注意事项
0 ≤ x, y < 231
输入测试数据 (每行一个参数)如何理解测试数据?
class Solution:
"""
@param x: an integer
@param y: an integer
@return: return an integer, denote the Hamming Distance between two integers
"""
'''
大致思路:
1.得到x和y的二进制数[2:],短的前面需要补上'0',差多少位补多少位
2.循环进行比较,看有多少位不同
'''
def hammingDistance(self,x,y):
x_bin,y_bin = bin(x)[2:],bin(y)[2:]
if len(x_bin) > len(y_bin):
for j in range(abs(len(x_bin)-len(y_bin))):
y_bin = '0' + y_bin
else:
for j in range(abs(len(x_bin)-len(y_bin))):
x_bin = '0' + x_bin
count = 0for i in range(len(x_bin)):
if x_bin[i] != y_bin[i]:
count += 1return count