Cho hai số nguyên. Tìm khoảng cách Hamming (số bit khác nhau). Ví dụ: 7 (0111) và 15 (1111) → khoảng cách 1.
Giải pháp
Duyệt 32 bit:
- Với i từ 31 xuống 0: b1 = x>>i & 1, b2 = y>>i & 1. Nếu b1 != b2 thì tăng ans.
Ví dụ
Triển khai Python:
class Solution(object):
def hammingDistance(self, x, y):
ans = 0
for i in range(31,-1,-1):
b1= x>>i&1
b2 = y>>i&1
ans+= not(b1==b2)
return ans
ob1 = Solution()
print(ob1.hammingDistance(7, 15)) Đầu vào
7 15
Đầu ra
1