Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ตรวจสอบว่าการแสดงเลขฐานสองของตัวเลขสองตัวเป็นแอนนาแกรมใน Python . หรือไม่


สมมติว่าเรามีตัวเลข 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