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

पायथन में जोड़ी योग मान के समान है या नहीं जांचने के लिए डेटा संरचना बनाने का प्रोग्राम

मान लीजिए हम एक डेटा संरचना बनाना चाहते हैं जिसमें दो विधियाँ हों:

  • add(val) यह मान val को डेटा संरचना में जोड़ता है
  • find(val) यह जांचता है कि क्या दो तत्व हैं जिनका योग val है या नहीं

हमें इसे इस तरह डिज़ाइन करना है कि हम ऑन-द-फ्लाई परिणाम प्राप्त कर सकें। हम हर बार क्वेरी आने पर संख्याओं की खोज नहीं करेंगे।

इसलिए, यदि इनपुट है एक ऑब्जेक्ट obj बनाएं और कुछ संख्याएं 6, 14, 3, 8, 11, 15 जोड़ें, फिर जांचें जैसे obj.find(9), obj.find(11), obj.find(15), तो आउटपुट होगा True, True, False क्योंकि 9 को 6+3 से बनाया जा सकता है, 11 को 3+8 से बनाया जा सकता है। अब 15 डेटा संरचना में मौजूद है लेकिन कोई दो संख्याओं का योग 15 के समान नहीं है।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:

  • कंस्ट्रक्टर परिभाषित करें।
  • nums := एक नया सेट
  • multiple := एक नया सेट
  • add() फ़ंक्शन परिभाषित करें। यह val लेगा:
    • val को multiple में डालें
  • अन्यथा:
    • val को nums में डालें
  • find() फ़ंक्शन परिभाषित करें। यह val लेगा:
    • nums में प्रत्येक n के लिए, करें:
      • यदि n + n val के समान है, तो:
        • सत्य लौटाएं जब n multiple में हो
      • अन्यथा जब val - n nums में हो, तो:
        • True लौटाएं
    • False लौटाएं

उदाहरण

बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:

class PairSumChecker:
    def __init__(self):
        self.nums = set()
        self.multiple = set()
    def add(self, val):
        if val in self.nums:
            self.multiple.add(val)
        else:
            self.nums.add(val)
    def find(self, val):
        for n in self.nums:
            if n + n == val:
                return n in self.multiple
            elif val - n in self.nums:
                return True
        return False
obj = PairSumChecker()
obj.add(6)
obj.add(14)
obj.add(3)
obj.add(8)
obj.add(11)
obj.add(15)
print(obj.find(9))
print(obj.find(11))
print(obj.find(15))

इनपुट

obj.find(9), obj.find(11), obj.find(15)

आउटपुट

True True False
  1. Python में दो ट्री उनकी संरचना और मानों के आधार पर बिल्कुल समान हैं या नहीं, इसकी जांच करने का प्रोग्राम Python में दो ट्री उनकी संरचना और मानों के आधार पर बिल्कुल समान हैं या नहीं, इसकी जांच करने का प्रोग्राम

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

  1. Python में प्रत्येक नोड मान (पत्तियों को छोड़कर) उसके बच्चों के योग के बराबर है या नहीं, इसकी जांच करने का प्रोग्राम Python में प्रत्येक नोड मान (पत्तियों को छोड़कर) उसके बच्चों के योग के बराबर है या नहीं, इसकी जांच करने का प्रोग्राम

    मान लीजिए हमारे पास एक बाइनरी ट्री है, हमें यह जांचना है कि ट्री में पत्तियों को छोड़कर हर नोड के लिए, उसका मान उसके बाएं बच्चे के मान और उसके दाएं बच्चे के मान के योग के समान है या नहीं। तो, यदि इनपुट इस तरह है तो आउटपुट True होगा। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे: dfs() फ़ंक्शन

  1. पायथन प्रोग्राम: साइक्लिक रिडंडेंसी चेक (CRC) पायथन प्रोग्राम: साइक्लिक रिडंडेंसी चेक (CRC)

    डिजिटल डेटा में एरर्स डिटेक्ट करने के लिए CRC का उपयोग किया जाता है, यह ट्रांसमिशन एरर्स डिटेक्ट करने में एक अच्छी तकनीक है। इस तकनीक में मुख्य रूप से बाइनरी डिवीजन लागू किया जाता है।इस तकनीक में, साइक्लिक रिडंडेंसी चेक बिट्स मौजूद होते हैं जो रिडंडेंट बिट्स का एक सीक्वेंस होता है, ये बिट्स डेटा यून