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

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


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

उदाहरण के लिए, यदि इनपुट words = ["prince", "rice", "price", "limit", "hello"] letters = "*r**ce*" है, तो आउटपुट 6 होगा, क्योंकि हम जो सबसे लंबा शब्द बना सकते हैं वह "prince" है जिसकी लंबाई 6 है।

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

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

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

उदाहरण

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।इसे हल करने के लिए, हम इन चरणों का पालन करेंगे−ret := 0दो डबल एंडेड क्यू minq और maxq परिभाषित करेंl := 0, r := 0जब तक r < nums का आकार, करेंn := nums[r]जब तक minq और n < nums[minq का अंतिम तत्व], करेंminq से अंतिम तत्व हटाएंr को minq के अंत में डालें nums[maxq का अंतिम तत

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

    मान लीजिए हमारे पास एक स्ट्रिंग S है। हमें S में सबसे लंबे पैलिंड्रोमिक सबस्ट्रिंग की लंबाई ढूंढनी है। हम मान रहे हैं कि स्ट्रिंग S की लंबाई 1000 है। उदाहरण के लिए, यदि स्ट्रिंग BABAC है, तो सबसे लंबा पैलिंड्रोमिक सबस्ट्रिंग BAB है और इसकी लंबाई 3 है।समाधान दृष्टिकोण (डायनामिक प्रोग्रामिंग)इस समस्या

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

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