สมมติว่าเรามีตัวเลข x และ y สองตัว เราต้องตรวจสอบว่าการแสดงเลขฐานสองของ x และ y เป็นแอนนาแกรมของกันและกันหรือไม่
ดังนั้น หากอินพุตเป็นเหมือน x =9 y =12 ผลลัพธ์จะเป็น True เนื่องจากการแสดงเลขฐานสองของ 9 คือ 1001 และการแทนค่าไบนารีของ 12 คือ 1100 ดังนั้นทั้งสองจึงเป็นแอนนาแกรมของกันและกัน
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- ถ้าจำนวน 1 วินาทีใน x และ y เท่ากัน ดังนั้น
- คืนค่า True
- คืนค่าเท็จ
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
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))
อินพุต
9, 12
ผลลัพธ์
True