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

पायथन में शब्दों की सूची और अक्षरों की संख्या से उत्पन्न होने वाले तारों की अधिकतम संख्या को गिनने का कार्यक्रम

मान लीजिए हमारे पास स्ट्रिंग्स की एक सूची है जहां प्रत्येक स्ट्रिंग में दो अक्षर "ए" और "बी" होते हैं। हमारे पास दो मान a और b हैं। हमें बनने वाले तारों की अधिकतम संख्या ज्ञात करनी होगी। हम अधिक से अधिक "ए" का उपयोग कर सकते हैं और अधिक से अधिक "बी" की संख्या का पुन:उपयोग किए बिना उपयोग कर सकते हैं।

इसलिए, यदि इनपुट स्ट्रिंग्स =["AAABB", "AABB", "AA", "BB"] a =4 b =2 की तरह है, तो आउटपुट 2 होगा, क्योंकि हम 4 "A" का उपयोग करके स्ट्रिंग्स ले सकते हैं। "एस और 2" बी "एस ["एएबीबी", "एए"]।

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

  • जोड़े :=एक नई सूची
  • स्ट्रिंग में प्रत्येक w के लिए, करें
    • A :=w में "A" की संख्या
    • B :=w - A का आकार
    • जोड़े के अंत में एक जोड़ी (ए, बी) डालें
  • उत्तर:=एक नक्शा जहां (ए, बी) का मान 0 है
  • जोड़ों में प्रत्येक पैट (ए, बी) के लिए, करें
    • अस्थायी:=उत्तर से एक नया नक्शा
    • प्रत्येक जोड़ी के लिए (temp_a, temp_b), और उत्तर के wc का मान करें
      • अगर temp_a>=A और temp_b>=B, तो
        • रेम:=एक पैट (temp_a - A, temp_b - B)
        • temp[rem] :=अधिकतम अस्थायी [rem] (यदि रेम नहीं है, तो 0) और (wc + 1)
      • उत्तर:=अस्थायी
  • उत्तर के सभी मानों की अधिकतम सूची लौटाएं

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

उदाहरण

class Solution:
   def solve(self, strings, a, b):
      pairs = []
      for w in strings:
         A = w.count("A")
         B = len(w) - A
         pairs.append((A, B))
      ans = {(a, b): 0}
      for A, B in pairs:
         temp = dict(ans)
         for (temp_a, temp_b), wc in ans.items():
            if temp_a >= A and temp_b >= B:
               rem = (temp_a - A, temp_b - B)
               temp[rem] = max(temp.get(rem, 0), wc + 1)
         ans = temp
      return max(ans.values())

ob = Solution()
strings = ["AAABB", "AABB", "AA", "BB"]
a = 4
b = 2
print(ob.solve(strings, a, b))

इनपुट

["AAABB", "AABB", "AA", "BB"], 4, 2

आउटपुट

2

  1. पायथन में ईंटों के सेट से क्षैतिज ईंट पैटर्न की संख्या गिनने का कार्यक्रम बनाया जा सकता है

    मान लीजिए कि हमारे पास ईंटों नामक संख्याओं की एक सूची है और दो अन्य मान चौड़ाई और ऊंचाई हैं। ईंटों में प्रत्येक तत्व [i] एक ईंट का प्रतिनिधित्व करता है जिसकी लंबाई ईंटें [i] इकाइयाँ और चौड़ाई 1 इकाई है। हमें ईंटों को बिछाने के तरीकों की संख्या का पता लगाना है ताकि हमें दी गई चौड़ाई और ऊंचाई के साथ ई

  1. दो स्ट्रिंग्स से असामान्य शब्द खोजने के लिए पायथन प्रोग्राम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें दो तार दिए गए हैं, हमें दिए गए तार से असामान्य शब्द निकालने होंगे। आइए अब नीचे दिए गए कार्यान्वयन में समाधान देखें - उदाहरण # uncommon words def find(A, B):    # count    count = {}   &n

  1. लगातार 1 के बिना बाइनरी स्ट्रिंग्स की संख्या गिनने के लिए पायथन प्रोग्राम

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