Cho hai số x và y. Kiểm tra xem biểu diễn nhị phân của chúng có là anagram của nhau hay không (tức là có cùng số lượng bit 1).
Ví dụ: x=9 (1001), y=12 (1100) → cả hai có 2 bit 1 → True.
Giải thuật
- Đếm số bit 1 của
xvày(hàmset_bit_count). - Nếu bằng nhau →
True.
Mã ví dụ
def set_bit_count(num):
cnt = 0
while num:
cnt += num & 1
num >>= 1
return cnt
def solve(x, y):
if set_bit_count(x) == set_bit_count(y):
return True
return False
x = 9
y = 12
print(solve(x, y))
Đầu vào
9, 12
Đầu ra
True