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

पायथन में जांचें कि कोई अंतराल दूसरे को पूरी तरह ओवरलैप करता है या नहीं

मान लीजिए हमें अंतरालों का एक समूह दिया गया है जिसमें मान (a, b) होते हैं, जहां a किसी घटना का प्रारंभ समय दर्शाता है और b समाप्ति समय। हमारा कार्य यह जांचना है कि क्या इनमें से कोई भी अंतराल इस समूह में किसी अन्य अंतराल को पूरी तरह से ओवरलैप करता है। यदि कोई अंतराल ओवरलैप करता है, तो हम True लौटाते हैं, अन्यथा False।

उदाहरण के लिए, यदि इनपुट [(4,6), (10,12), (7,9), (13,16)] है, तो आउटपुट False होगा। यदि इनपुट [(4,6), (4,9), (7,11), (5,8)] है, तो आउटपुट True होगा।

समाधान दृष्टिकोण

अंतरालों को सॉर्ट करके, हम आसानी से जांच सकते हैं कि कोई अंतराल पिछले अंतराल के भीतर पूरी तरह से समाहित है या नहीं।

एल्गोरिदम चरण:

  1. अंतरालों की सूची को सॉर्ट करें (डिफ़ॉल्ट रूप से पहले तत्व के अनुसार, फिर दूसरे के अनुसार)
  2. सूची में दूसरे अंतराल से शुरू करके प्रत्येक अंतराल के लिए:
    • यदि वर्तमान अंतराल का अंत (intervals[i][1]) पिछले अंतराल के अंत (intervals[i-1][1]) से कम या बराबर है, तो इसका मतलब है कि वर्तमान अंतराल पिछले अंतराल के भीतर पूरी तरह से समाहित है
    • ऐसे मामले में True लौटाएं
  3. यदि लूप पूरा होने पर कोई ऐसा ओवरलैप नहीं मिला, तो False लौटाएं

पायथन कार्यान्वयन

def solve(intervals):
    intervals.sort()
    for i in range(1, len(intervals)):
        if intervals[i][1] <= intervals[i-1][1]:
            return True
    return False

intervals1 = [(4,6), (10,12), (7,9), (13,16)]
intervals2 = [(4,6), (4,9), (7,11), (5,8)]
print(solve(intervals1))  # False
print(solve(intervals2))  # True

इनपुट

[(4,6),(10,12),(7,9),(13,16)] 
[(4,6), (4,9), (7,11), (5,8)]

आउटपुट

False True

व्याख्या:

दूसरे उदाहरण में, अंतराल (5,8) पूरी तरह से (4,9) के भीतर समाहित है, इसलिए फ़ंक्शन True लौटाता है।

  1. - पायथन में जांचें कि सरणी सुंदर (beautiful) है या नहीं

    मान लीजिए हमारे पास अद्वितीय तत्वों की एक सरणी nums है। हमें जांचना है कि ये शर्तें पूरी होती हैं या नहीं: तत्व 1 से n की रेंज में होंगे। सरणी आरोही क्रम में सॉर्ट नहीं होनी चाहिए। उदाहरण के लिए, यदि nums = [2, 6, 1, 5, 3, 4] है, तो आउटपुट True होगा। हल करने का तरीका n := nums का आकार total := n

  1. - पायथन में जांचें कि कोई अंतराल दूसरे को पूरी तरह ओवरलैप करता है या नहीं

    मान लीजिए हमें अंतरालों का एक समूह दिया गया है जिसमें मान (a, b) होते हैं, जहां a किसी घटना का प्रारंभ समय दर्शाता है और b समाप्ति समय। हमारा कार्य यह जांचना है कि क्या इनमें से कोई भी अंतराल इस समूह में किसी अन्य अंतराल को पूरी तरह से ओवरलैप करता है। यदि कोई अंतराल ओवरलैप करता है, तो हम True लौटाते

  1. - Python में Check करें कि Given Directory में कोई अन्य Directory है या नहीं?

    Directory में Subdirectories Check करना यह Check करने के लिए कि कोई Directory किसी अन्य Directory को Contains करती है या नहीं, Simply Reverse Check करें, यानी Check करें कि क्या इसमें कोई Entry है जो File नहीं है isfile Method का उपयोग करके। उदाहरण 1: Loop का उपयोग करके import os list_dir = os.li