Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Khoảng cách Hamming trong Python


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