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

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


मान लीजिए हमारे पास केवल अंग्रेजी स्वरों वाली एक स्ट्रिंग s है, हमें s के सबसे लंबे सुंदर सबस्ट्रिंग की लंबाई ढूंढनी है। यदि हमें ऐसा सबस्ट्रिंग नहीं मिलता तो 0 लौटाएं। एक स्ट्रिंग को सुंदर कहा जाता है यदि यह निम्न शर्तों को पूरा करती है:

  • इसमें सभी 5 स्वर कम से कम एक बार आने चाहिए।

  • अक्षर वर्णमाला क्रम में क्रमबद्ध होने चाहिए।

उदाहरण के लिए, यदि इनपुट है s = "aaioaaaaeiiouuooaauu", तो आउटपुट 10 होगा क्योंकि सबस्ट्रिंग "aaaaeiiouu" सुंदर है।

समाधान दृष्टिकोण

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

  • vowels := सभी स्वरों की सूची ['a', 'e', 'i', 'o', 'u']

  • l := 0, r := 0, longest := 0

  • जब तक l < s का आकार, तब तक

    • valid := True

    • vowels में प्रत्येक vowel के लिए

      • valid := valid सत्य है और (r < s का आकार और s[r], vowel के समान है)

      • जब तक r < s का आकार और s[r], vowel के समान है, तब तक r := r + 1

    • यदि valid सत्य है, तो longest := max(longest, r - l)

    • l := r

  • longest लौटाएं

उदाहरण

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

def solve(s):
    vowels = ['a', 'e', 'i', 'o', 'u']
    l, r, longest = 0, 0, 0
    while (l < len(s)):
        valid = True
        for vowel in vowels:
            valid &= (r < len(s) and s[r] == vowel)
            while (r < len(s) and s[r] == vowel):
                r += 1
        if (valid):
            longest = max(longest, r - l)
        l = r
    return longest

s = "aaioaaaaeiiouuooaauu"
print(solve(s))

इनपुट

"aaioaaaaeiiouuooaauu"

आउटपुट

10
  1. Python में सभी बिंदुओं को जोड़ने की न्यूनतम लागत खोजने का प्रोग्राम Python में सभी बिंदुओं को जोड़ने की न्यूनतम लागत खोजने का प्रोग्राम

    मान लीजिए हमारे पास points नामक एक ऐरे है जिसमें कुछ पॉइंट्स (x, y) के रूप में हैं। अब दो पॉइंट्स (xi, yi) और (xj, yj) को जोड़ने की लागत उनके बीच की मैनहट्टन दूरी है, सूत्र है |xi - xj| + |yi - yj|। हमें सभी पॉइंट्स को जोड़ने की न्यूनतम लागत ढूंढनी है। उदाहरण के लिए, यदि इनपुट है points = [(0,0),(

  1. - पायथन में दी गई संख्या के सभी अभाज्य गुणनखंडों को क्रमबद्ध क्रम में खोजने का प्रोग्राम

    मान लीजिए हमारे पास 1 से बड़ी एक संख्या n है, हमें उसके सभी अभाज्य गुणनखंड ढूंढने हैं और उन्हें क्रमबद्ध क्रम में वापस करना है। हम एक संख्या को अभाज्य संख्याओं के गुणनफल के रूप में लिख सकते हैं, वे उसके अभाज्य गुणनखंड हैं। और वही अभाज्य गुणनखंड एक से अधिक बार आ सकता है। उदाहरण के लिए, यदि इनपुट 42

  1. - पायथन में सभी स्वरों वाले सबस्ट्रिंग्स खोजें

    मान लीजिए हमारे पास लोअरकेस अल्फाबेट्स में एक स्ट्रिंग है, हमें वे सबस्ट्रिंग्स ढूंढने हैं जिनमें सभी स्वर कम से कम एक बार हों और उन सबस्ट्रिंग्स में कोई व्यंजन न हो।तो, यदि इनपुट helloworldaeiouaieuonicestring जैसा है, तो आउटपुट [aeiou, aeioua, aeiouai, aeiouaiu, eioua, eiouai, eiouaiu] होगा।इसे हल