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

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


मान लीजिए कि हमारे पास एक स्ट्रिंग s (लोअरकेस) है, हमें सबसे लंबे सबस्ट्रिंग की लंबाई ज्ञात करनी है, जहां प्रत्येक स्वर सम संख्या में आता है।

इसलिए, यदि इनपुट s ="anewcoffeepot" जैसा है, तो आउटपुट 10 होगा, क्योंकि "wcoffeepot" के विकल्प में दो स्वर "o" और "e" हैं, जो दोनों दो बार आते हैं।

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

  • स्वर:=स्वर और संख्यात्मक मान निर्दिष्ट करने वाला नक्शा {a:0, e:1, i:2, o:3, u:4}

  • उपसर्ग :=एक खाली नक्शा और उसमें एक कुंजी-मान युग्म (0, -1) डालें

  • मुखौटा:=0, एन:=एस का आकार, रेस:=0

  • मेरे लिए 0 से n की सीमा में, करें

    • अगर s[i] एक स्वर है, तो

      • मास्क:=मास्क XOR (2^स्वर[s[i]])

    • यदि मास्क उपसर्ग में नहीं है, तो

      • उपसर्ग [मुखौटा]:=मैं

    • अन्यथा,

      • रेस :=अधिकतम रेस और (i − प्रीफ़िक्स[मास्क])

  • रिटर्न रेस

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

उदाहरण

class Solution:
   def solve(self, s):
      vowels = {"a": 0, "e": 1, "i": 2, "o": 3, "u": 4}
      prefix = {0: −1}
      mask = 0
      n = len(s)
      res = 0
      for i in range(n):
         if s[i] in vowels:
            mask ^= 1 << vowels[s[i]]
         if mask not in prefix:
            prefix[mask] = i
         else:
            res = max(res, i − prefix[mask])
      return res
ob = Solution()
s = "anewcoffeepot"
print(ob.solve(s))

इनपुट

"anewcoffeepot"

आउटपुट

10

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

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

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

    मान लीजिए कि हमारे पास दो लोअरकेस स्ट्रिंग्स S और T हैं, तो हमें सबसे लंबे एनाग्राम अनुक्रम की लंबाई ज्ञात करनी होगी। इसलिए, यदि इनपुट S =helloworld, T =hellolorld जैसा है, तो आउटपुट 8 होगा इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - सी:=एक नया नक्शा, डी:=एक नया नक्शा मैं के लिए 0 से

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

    मान लीजिए कि हमारे पास एक स्ट्रिंग s है, हमें समान वर्णों वाले सबसे लंबे सबस्ट्रिंग की लंबाई ज्ञात करनी है। इसलिए, यदि इनपुट abbbaccabbba जैसा है, तो आउटपुट 4 होगा, क्योंकि इसमें लगातार चार बी होते हैं। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - यदि s का आकार 0 है, तो वापसी 0 s :=s रिक्त