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

पायथन में दिए गए अक्षरों का उपयोग करके बनाए जा सकने वाले सबसे लंबे स्ट्रिंग की लंबाई खोजने का प्रोग्राम


मान लीजिए हमारे पास words नामक स्ट्रिंग्स की एक सूची और letters नामक एक अन्य स्ट्रिंग है, हमें words में सबसे लंबी स्ट्रिंग की लंबाई ढूंढनी है जिसे letters के वर्णों से बनाया जा सकता है। यदि कोई शब्द नहीं बनाया जा सकता, तो 0 लौटाएं। यहां हम अक्षरों का पुनः उपयोग नहीं कर सकते।

उदाहरण के लिए, यदि इनपुट है words = ["dog", "cat", "rat", "bunny", "lion", "bat"], letters = "gabctnyu", तो आउटपुट होगा 3, क्योंकि हम "cat" या "bat" बना सकते हैं, इसलिए अधिकतम लंबाई 3 है।

हल करने के चरण

  • ref := letters के वर्णों और उनकी आवृत्ति का मैप।
  • max := 0
  • प्रत्येक word के लिए words में:
    • w := word के वर्णों और उनकी आवृत्ति का मैप।
    • l := word का आकार।
    • counter := 0
    • प्रत्येक k के लिए w में:
      • यदि w[k] <= ref[k], तो counter := counter + 1।
      • अन्यथा, लूप से बाहर निकलें।
    • यदि l > max और w का आकार counter के समान है, तो max := l।
  • max लौटाएं।

उदाहरण

from collections import Counter
class Solution:
    def solve(self, words, letters):
        ref = Counter(letters)
        max = 0
        for word in words:
            w = Counter(word)
            l = len(word)
            counter = 0
            for k in w:
                if w[k] <= ref[k]:
                    counter += 1
                else:
                    break
            if l > max and len(w) == counter:
                max = l
        return max

ob = Solution()
words = ["dog", "cat", "rat", "bunny", "lion", "bat"]
letters = "gabctnyu"
print(ob.solve(words, letters))

इनपुट

["dog", "cat", "rat", "bunny", "lion", "bat"], "gabctnyu"

आउटपुट

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

    मान लीजिए हमारे पास एक बाइनरी मैट्रिक्स है, जहां 0 खाली सेल दर्शाता है और 1 दीवार दर्शाता है। हम पहली पंक्ति के किसी भी खाली सेल से शुरू कर सकते हैं और अंतिम पंक्ति के किसी भी खाली सेल पर समाप्त करना चाहते हैं। हम बाएं, दाएं या नीचे जा सकते हैं, हमें सबसे लंबा ऐसा पथ ढूंढना है जहां हम प्रत्येक सेल क

  1. पायथन में n-ary ट्री में सबसे लंबे पथ की लंबाई खोजने का प्रोग्राम पायथन में n-ary ट्री में सबसे लंबे पथ की लंबाई खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक एज लिस्ट है जहां प्रत्येक आइटम (u, v) रखता है जो दर्शाता है कि u, v का पैरेंट है। हमें ट्री में सबसे लंबे पथ की लंबाई ढूंढनी है। पथ की लंबाई 1 + उस पथ में नोड्स की संख्या है। उदाहरण के लिए, यदि इनपुट है: तो आउटपुट 5 होगा, क्योंकि पथ [1, 4, 5, 7] है, कुल 4 नोड्स हैं, इसलिए पथ

  1. पायथन का उपयोग करके समान x या y निर्देशांक वाले निकटतम बिंदु को खोजने का प्रोग्राम पायथन का उपयोग करके समान x या y निर्देशांक वाले निकटतम बिंदु को खोजने का प्रोग्राम

    मान लीजिए हमारे पास pts नामक एक सरणी में बिंदुओं का एक समूह दिया गया है। हमारे पास एक अन्य बिंदु (x, y) भी है जो हमारा वर्तमान स्थान है। हम एक वैध बिंदु को इस प्रकार परिभाषित कर रहे हैं, एक बिंदु जो हमारे वर्तमान बिंदु के समान x-निर्देशांक या समान y-निर्देशांक साझा करता है। हमें अपने वर्तमान स्थान