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

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

मान लीजिए हमारे पास शब्दों की एक सूची है और एक स्ट्रिंग है जिसे अक्षर कहा जाता है, हमें सबसे लंबे शब्द का आकार ज्ञात करना है जो दिए गए अक्षरों को पुनर्व्यवस्थित करके बनाया जा सकता है। अक्षरों में तारक वर्ण (*) हो सकता है यह किसी भी वर्ण से मेल खा सकता है। और सभी अक्षरों का उपयोग करना आवश्यक नहीं है।

इसलिए, यदि इनपुट शब्द =["राजकुमार", "चावल", "कीमत", "सीमा", "हैलो"] अक्षर ="*r**ce*" जैसा है, तो आउटपुट 6 होगा, जैसा कि सबसे लंबा शब्द जो हम बना सकते हैं वह है "राजकुमार" जिसकी लंबाई 6 है।

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

  • इसमें :=एक नक्शा है जिसमें अक्षरों में प्रत्येक तत्व के अक्षर और आवृत्तियां हैं
  • एक फ़ंक्शन मान्य() परिभाषित करें। इसमें लगेगा
  • ज़रूरत:=एक नक्शा जिसमें अक्षरों और प्रत्येक तत्व के आवृत्तियों को शामिल किया गया है
  • अतिरिक्त :=के सभी तत्वों का योग (अधिकतम 0 और आवश्यकता [char] - है [char] सभी चार जरूरतमंदों के लिए)
  • सही लौटें जब अतिरिक्त <=में["*"]
  • हो
  • मुख्य विधि से निम्न कार्य करें:
  • सूची में सभी तत्वों की अधिकतम वापसी [शब्द मान्य होने पर शब्दों में सभी शब्दों के लिए शब्द का आकार]

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

उदाहरण

from collections import Counter

class Solution:
   def solve(self, words, letters):
      has = Counter(letters)

      def valid(s):
         need = Counter(s)
         extra = sum([max(0, need[char] - has[char]) for char in need])
         return extra <= has["*"]

      return max([len(word) for word in words if valid(word)])

ob = Solution()
words = ["prince", "rice", "price", "limit", "hello"]
letters = "*r**ce*"
print(ob.solve(words, letters))

इनपुट

["prince", "rice", "price", "limit", "hello"], "*r**ce*"

आउटपुट

6

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

    अधिकतम उपसूची। 6 के रूप में। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे- रिट:=0 दो डबल एंडेड कतारों को परिभाषित करें minq और maxq एल:=0, आर:=0 जबकि r <अंकों का आकार, करें एन:=अंक [आर] जबकि minq और n

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

    मान लीजिए कि हमारे पास एक स्ट्रिंग S है। हमें S में सबसे लंबे पैलिंड्रोमिक सबस्ट्रिंग की लंबाई का पता लगाना है। हम मान रहे हैं कि स्ट्रिंग S की लंबाई 1000 है। इसलिए यदि स्ट्रिंग BABAC है, तो सबसे लंबा पैलिंड्रोमिक सबस्ट्रिंग BAB है। और लंबाई 3 है। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  1. पायथन में दिए गए अक्षरों का उपयोग करके सबसे लंबी लंबाई ज्ञात करने का कार्यक्रम, जिसे बनाया जा सकता है

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