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

पायथन में जांचें कि दो संख्याओं के L से R रेंज के बिट्स एक-दूसरे के पूरक हैं या नहीं


मान लीजिए हमारे पास दो संख्याएं x और y और एक दी गई रेंज (left, right) है। हमें जांचना है कि दोनों दी गई संख्याओं में left से right रेंज के सभी बिट्स एक-दूसरे के पूरक (complement) हैं या नहीं। ध्यान रखें कि दाएं से बाएं, इसलिए सबसे कम महत्वपूर्ण बिट को पहली स्थिति माना जाता है।

उदाहरण के लिए, यदि x = 41, y = 54, left = 2, right = 5 है, तो आउटपुट True होगा क्योंकि 41 और 54 का बाइनरी प्रतिनिधित्व 101001 और 110110 है। x और y के 2 से 5 रेंज के बिट्स "1001" और "0110" हैं जो एक-दूसरे के पूरक हैं।

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

  1. temp := x XOR y
  2. यदि temp के रेंज (left, right) में सभी बिट्स 1 हैं, तो True लौटाएं, अन्यथा False

XOR से पूरक बिट्स 1 हो जाते हैं, इसलिए रेंज में सभी बिट्स 1 होने चाहिए।

उदाहरण

def are_all_setbits_in_range(n, left, right):
    val = ((1 << right) - 1) ^ ((1 << (left - 1)) - 1)
    new_value = n & val
    if val == new_value:
        return True
    return False

def solve(x, y, left, right):
    temp = x ^ y
    return are_all_setbits_in_range(temp, left, right)

x = 41
y = 54
left = 2
right = 5
print(solve(x, y, left, right))

इनपुट

41, 54, 2, 5

आउटपुट

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

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

  1. दो पत्तियों के लीफ अनुक्रम समान हैं या नहीं जांचने का पायथन प्रोग्राम दो पत्तियों के लीफ अनुक्रम समान हैं या नहीं जांचने का पायथन प्रोग्राम

    मान लीजिए हमारे पास दो बाइनरी ट्री हैं; हमें जांचना है कि क्या दोनों ट्री में बाएं से दाएं लीफ का अनुक्रम समान है। उदाहरण के लिए, यदि इनपुट इस तरह है: तो आउटपुट True होगा क्योंकि दोनों ट्री के लिए अनुक्रम [2, 6] है। इसे हल करने के लिए, हम निम्न चरणों का पालन करेंगे: c := एक नई सूची एक फ़ंक्शन ino

  1. Python में एक ट्री दूसरे का सबट्री है या नहीं, इसकी जांच करने का प्रोग्राम Python में एक ट्री दूसरे का सबट्री है या नहीं, इसकी जांच करने का प्रोग्राम

    मान लीजिए हमारे पास दो बाइनरी ट्री हैं। हमें यह जांचना है कि दूसरा ट्री पहले का सबट्री है या नहीं। तो, यदि इनपुट इस तरह है तो आउटपुट True होगा। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे: solve() फ़ंक्शन परिभाषित करें। यह root, target लेगा यदि root null है और target भी null है, तो True लौटा