Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में जांचें कि दो संख्याओं के बाइनरी प्रतिनिधित्व एनाग्राम हैं या नहीं


मान लीजिए हमारे पास दो संख्याएं x और y हैं, हमें जांचना है कि x और y के बाइनरी प्रतिनिधित्व एक-दूसरे के एनाग्राम हैं या नहीं।

उदाहरण के लिए, यदि x = 9, y = 12 है, तो आउटपुट True होगा क्योंकि 9 का बाइनरी 1001 है और 12 का बाइनरी 1100 है, ये दोनों एक-दूसरे के एनाग्राम हैं (दोनों में दो 1 और दो 0 हैं)।

हल करने का तरीका

  1. यदि x और y में सेट बिट्स (1s) की संख्या समान है, तो True लौटाएं
  2. अन्यथा False लौटाएं

चूंकि बाइनरी में केवल 0 और 1 होते हैं, सेट बिट्स की संख्या समान होने का अर्थ है दोनों में 0 और 1 की संख्या समान है, यानी वे एनाग्राम हैं।

उदाहरण

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
  1. Python में दो बाइनरी ट्री के लीफ ट्रैवर्सल के समान होने की जांच कैसे करें? Python में दो बाइनरी ट्री के लीफ ट्रैवर्सल के समान होने की जांच कैसे करें?

    मान लीजिए हमारे पास दो बाइनरी ट्री हैं। हमें यह जांचना है कि इन दो ट्री का लीफ ट्रैवर्सल समान है या नहीं। जैसा कि हम जानते हैं, लीफ ट्रैवर्सल बाएं से दाएं पार किए गए पत्तियों का अनुक्रम है। तो, यदि इनपुट है तो आउटपुट True होगा क्योंकि दोनों ट्री का बायां ट्रैवर्सल अनुक्रम समान है, जो [5, 7, 8] है।

  1. पायथन में जांचें कि दो ट्री के सभी लेवल एनाग्राम हैं या नहीं पायथन में जांचें कि दो ट्री के सभी लेवल एनाग्राम हैं या नहीं

    मान लीजिए, हमें दो बाइनरी ट्री प्रदान किए गए हैं। हमें यह जांचना है कि एक बाइनरी ट्री का प्रत्येक लेवल दूसरे बाइनरी ट्री के उसी लेवल का एनाग्राम है या नहीं। यदि यह एनाग्राम है तो हम True वापस करते हैं, अन्यथा False वापस करते हैं। इसलिए, यदि इनपुट इस तरह है: तो आउटपुट True होगा। इसे हल करने के लिए

  1. - बाइनरी संख्या में K लगातार 1 हैं या नहीं जांचने का पायथन प्रोग्राम

    समस्या विवरण सबसे पहले हम 1 और 0 के संयोजन के साथ एक यूजर इनपुट स्ट्रिंग लेते हैं। फिर 1 की एक नई स्ट्रिंग बनाते हैं, फिर जांचते हैं कि क्या p संख्या में लगातार 1 मौजूद हैं या नहीं। यदि मौजूद हैं तो FOUND प्रदर्शित करें अन्यथा NOT FOUND। उदाहरण बाइनरी संख्या ::1111001111 लगातार 1 दर्ज करें :3 लगाता