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

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

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

इसलिए, यदि इनपुट s ="thegrumpywizardmakes" t ="वेक" जैसा है, तो आउटपुट 10 होगा, क्योंकि "वेक" वाला सबसे छोटा विकल्प "विज़ार्डमेक" (10 की लंबाई) है।

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

  • काउंटर:=बी में प्रत्येक वर्ण की आवृत्ति

  • प्रारंभ:=0

  • min_subs :=inf

  • रेम:=बी में अलग-अलग वर्णों की गिनती

  • 0 से ए के आकार के अंत के लिए, करें

    • वर्तमान:=एक [अंत]

    • अगर करंट काउंटर में है, तो

      • काउंटर [वर्तमान]:=काउंटर [वर्तमान] - 1

      • अगर काउंटर [करंट] 0 के समान है, तो

        • रेम :=रेम - 1

    • जबकि रेम 0 के समान है, करें

      • prev_char :=a[शुरू]

      • अगर prev_char काउंटर में है, तो

        • काउंटर [prev_char] :=काउंटर[prev_char] + 1

        • अगर काउंटर [prev_char]> 0, तो

          • रेम :=रेम + 1

      • min_subs :=न्यूनतम min_subs और (अंत - प्रारंभ + 1)

      • प्रारंभ:=प्रारंभ + 1

  • 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"

आउटपुट

2

  1. ग्राफ़ में सबसे बड़े गुट के न्यूनतम आकार का पता लगाने का कार्यक्रम (पायथन)

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

  1. पता लगाएं कि क्या एक अप्रत्यक्ष ग्राफ में पायथन में दिए गए आकार का एक स्वतंत्र सेट है

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

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

    इस समस्या में एक स्ट्रिंग दी जाती है, हमें यह जांचना होता है कि दिए गए स्ट्रिंग में कोई सबस्ट्रिंग मौजूद है या नहीं। एल्गोरिदम Step 1: input a string and a substring from the user and store it in separate variables. Step 2. Check if the substring is present in the string or not. To do this using fi