मान लीजिए कि हमारे पास केवल अंग्रेजी स्वरों के साथ एक स्ट्रिंग है, हमें s के सबसे लंबे सुंदर विकल्प की लंबाई का पता लगाना है। यदि हमें ऐसा सबस्ट्रिंग नहीं मिल रहा है, तो 0 लौटाएं। एक स्ट्रिंग को सुंदर कहा जाता है यदि वह निम्नलिखित शर्तों को पूरा करती है -
-
5 स्वरों में से प्रत्येक को इसमें कम से कम एक बार अवश्य आना चाहिए।
-
अक्षरों को वर्णानुक्रम में क्रमबद्ध किया जाना चाहिए
इसलिए, यदि इनपुट s ="aaioaaaaaeiiouuooaauu" जैसा है, तो आउटपुट 10 होगा क्योंकि सबस्ट्रिंग "aaaaeiiouu" है जो सुंदर है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
स्वर :=सभी स्वरों की सूची ['a', 'e', 'i', 'o', 'u']
-
एल:=0, आर:=0, सबसे लंबा:=0
-
जबकि l
-
मान्य:=सत्य
-
स्वरों में प्रत्येक स्वर के लिए, करें
-
मान्य:=मान्य सत्य है और (r
-
जबकि r
-
आर:=आर + 1
-
-
-
अगर मान्य सही है, तो
-
सबसे लंबा :=अधिकतम सबसे लंबा और (r - l)
-
-
एल :=आर
-
-
सबसे लंबी वापसी
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
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