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

पायथन में दिए गए सबस्ट्रिंग को समाहित करने वाले न्यूनतम स्ट्रिंग आकार ज्ञात करने का प्रोग्राम


मान लीजिए हमारे पास दो स्ट्रिंग्स s और t हैं। हमें s में न्यूनतम लंबाई के सबस्ट्रिंग का आकार ज्ञात करना है जिसमें t के सभी वर्ण हों। यदि ऐसा कोई सबस्ट्रिंग मौजूद नहीं है तो -1 वापस करें।

उदाहरण के लिए, s = "thegrumpywizardmakes", t = "wake" के लिए आउटपुट 10 होगा (सबस्ट्रिंग "wizardmake")।

एल्गोरिदम (स्लाइडिंग विंडो)

  • counter := b में प्रत्येक वर्ण की फ्रीक्वेंसी
  • start := 0, min_subs := inf, rem := b में विशिष्ट वर्णों की संख्या
  • end = 0 से len(a)-1 तक:
    • current := a[end]
    • यदि current in counter:
      • counter[current]--
      • यदि counter[current] == 0, तो rem--
    • जब rem == 0:
      • prev_char := a[start]
      • यदि prev_char in counter:
        • counter[prev_char]++
        • यदि counter[prev_char] > 0, तो rem++
      • min_subs = min(min_subs, end-start+1)
      • start++
  • min_subs यदि min_subs != inf अन्यथा -1 वापस करें

उदाहरण

class Solution:
    def solve(self, a, b):
        counter = {}
        for char in b:
            counter[char] = counter.get(char, 0) + 1
        start = 0
        min_subs = float("inf")
        rem = len(counter)
        for end in range(len(a)):
            current = a[end]
            if current in counter:
                counter[current] -= 1
                if counter[current] == 0:
                    rem -= 1
            while rem == 0:
                prev_char = a[start]
                if prev_char in counter:
                    counter[prev_char] += 1
                    if counter[prev_char] > 0:
                        rem += 1
                min_subs = min(min_subs, end - start + 1)
                start += 1
        return min_subs if min_subs != float("inf") else -1

ob = Solution()
s = "thegrumpywizardmakes"
t = "wake"
print(ob.solve(s, t))

इनपुट

"thegrumpywizardmakes", "wake"

आउटपुट

10
  1. पायथन में ग्राफ में सबसे बड़े क्लिक का न्यूनतम आकार ज्ञात करने का प्रोग्राम पायथन में ग्राफ में सबसे बड़े क्लिक का न्यूनतम आकार ज्ञात करने का प्रोग्राम

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

  1. Python में अनिर्देशित ग्राफ में दिए गए आकार का स्वतंत्र सेट है या नहीं जांचना Python में अनिर्देशित ग्राफ में दिए गए आकार का स्वतंत्र सेट है या नहीं जांचना

    मान लीजिए हमारे पास एक दिया गया अनिर्देशित ग्राफ है; हमें जांचना है कि क्या इसमें आकार l का एक स्वतंत्र सेट है। यदि आकार l का कोई स्वतंत्र सेट है तो Yes वापस करें अन्यथा No। हमें इस बात का ध्यान रखना है कि एक ग्राफ में स्वतंत्र सेट को उन शीर्षों के समूह के रूप में परिभाषित किया गया है जो सीधे एक-दूस

  1. - दिए गए स्ट्रिंग में सबस्ट्रिंग मौजूद है या नहीं जांचने का पायथन प्रोग्राम

    समस्या विवरण इस समस्या में एक स्ट्रिंग दी गई है, हमें जांचना है कि क्या दी गई स्ट्रिंग में एक सबस्ट्रिंग मौजूद है। एल्गोरिदम यूजर से एक स्ट्रिंग और एक सबस्ट्रिंग इनपुट करें और उन्हें अलग-अलग वेरिएबल में संग्रहीत करें। जांचें कि सबस्ट्रिंग स्ट्रिंग में मौजूद है या नहीं। इसके लिए इनबिल्ट find() फंक्