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

पायथन में बिल्कुल k अलग-अलग शब्दों वाले उपन्यासकारों की संख्या खोजने का कार्यक्रम

मान लीजिए हमारे पास शब्दों की एक सूची है और दूसरा मान k है। हमें दिए गए शब्दों में उप-सूचियों की संख्या इस प्रकार ज्ञात करनी है कि बिल्कुल k भिन्न शब्द हों।

इसलिए, यदि इनपुट शब्दों की तरह है =["कोलकाता", "दिल्ली", "दिल्ली", "कोलकाता"] k =2, तो आउटपुट 5 होगा, क्योंकि निम्नलिखित उपन्यासकारों के पास 2 अद्वितीय शब्द हैं:["कोलकाता" , "दिल्ली"], ["दिल्ली", "कोलकाता"], ["कोलकाता", "दिल्ली", "दिल्ली"], ["दिल्ली", "दिल्ली", "कोलकाता"], ["कोलकाता", " दिल्ली", "दिल्ली", "कोलकाता"], लेकिन ["दिल्ली", "दिल्ली"] नहीं, क्योंकि केवल एक अनूठा शब्द है।

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

  • फ़ंक्शन को परिभाषित करें work() । यह शब्द लेगा, k
  • n :=शब्दों का आकार
  • यदि k, 0 के समान है, तो
    • वापसी 0
  • cnt :=एक नया नक्शा
  • उत्तर:=0
  • एल :=0
  • 0 से n की श्रेणी में r के लिए, करें
    • शब्द:=शब्द[आर]
    • यदि शब्द cnt में मौजूद नहीं है, तो
      • cnt[शब्द] :=0
    • cnt[शब्द] :=cnt[शब्द] + 1
    • जबकि cnt का आकार> k, करें
      • cnt[words[l]] :=cnt[words[l]] - 1
      • यदि cnt[words[l]] 0 के समान है, तो
        • cnt से शब्द हटाएं[l]
      • एल :=एल + 1
    • उत्तर:=उत्तर + आर - एल + 1
  • वापसी उत्तर

मुख्य विधि से वापसी (काम(शब्द, के) - काम(शब्द, के -1))

उदाहरण (पायथन)

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

class Solution:
   def solve(self, words, k):
      return self.work(words, k) - self.work(words, k - 1)
   def work(self, words, k):
      n = len(words)
      if k == 0:
         return 0
      cnt = dict()
      ans = 0
      l = 0
      for r in range(n):
         word = words[r]
         if word not in cnt:
            cnt[word] = 0
         cnt[word] += 1
         while len(cnt) > k:
            cnt[words[l]] -= 1
            if cnt[words[l]] == 0:
               del cnt[words[l]]
            l += 1
         ans += r - l + 1
      return ans
ob = Solution()
words = ["Kolkata", "Delhi", "Delhi", "Kolkata"]
k = 2
print(ob.solve(words, k))

इनपुट

["Kolkata", "Delhi", "Delhi", "Kolkata"], 2

इनपुट

5

  1. पायथन में एक अद्वितीय वर्ण वाले स्ट्रिंग्स की कुल संख्या को खोजने के लिए प्रोग्राम

    मान लीजिए कि हमारे पास लोअरकेस अक्षरों की एक स्ट्रिंग है, हमें उन सबस्ट्रिंग्स की कुल संख्या ज्ञात करनी है जिनमें एक अद्वितीय वर्ण है। इसलिए, यदि इनपुट xxyy जैसा है, तो आउटपुट 6 होगा क्योंकि सबस्ट्रिंग हैं [x, x, xx, y, y, yy] इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - कुल :=0 पिछला:=खाली स

  1. पायथन प्रोग्राम में प्राइम नंबर खोजने के विभिन्न तरीके

    इस ट्यूटोरियल में, हम यह पता लगाने के लिए विभिन्न तरीकों का पता लगाने जा रहे हैं कि दी गई संख्या वैध है या नहीं। आइए बिना किसी अतिरिक्त बकाया के शुरू करते हैं। विधि-1 यह अभाज्य संख्याओं को खोजने का एक सामान्य तरीका है। अगर संख्या एक से कम या उसके बराबर है, तो झूठी वापसी करें। यदि संख्या किसी

  1. पायथन प्रोग्राम में प्राइम नंबर खोजने के लिए विभिन्न तरीकों का विश्लेषण

    इस ट्यूटोरियल में, हम प्रत्येक विधि के लिए आवश्यक अभाज्य संख्याएँ और समय ज्ञात करने के लिए विभिन्न विधियों को देखने जा रहे हैं। हम निष्पादन समय की गणना करने के लिए समय मॉड्यूल का उपयोग करने जा रहे हैं। विधि-1 यह अभाज्य संख्याओं को खोजने का एक सामान्य तरीका है। यदि संख्या एक से कम या उसके बराबर है,