মনে করুন s শুধু ইংরেজি স্বর সহ একটি স্ট্রিং। আমাদের s-র সবচেয়ে লম্বা সুন্দর সাবস্ট্রিংর দৈর্ঘ্য বের করতে হবে। যদি এমন কোনো সাবস্ট্রিং না পাই তবে 0 রিটার্ন করুন। একটি স্ট্রিংকে সুন্দর বলা হয় যদি এটি নিচের শর্তগুলো পূরণ করে −
৫টি স্বর প্রত্যেকটি কমপক্ষে একবার উপস্থিত থাকতে হবে।
লেটারগুলো আলফাবেটিক্যাল ক্রমে সাজানো থাকতে হবে।
সুতরাং, যদি ইনপুট হয় s = "aaioaaaaeiiouuooaauu", তবে আউটপুট হবে 10 কারণ সাবস্ট্রিংটি হল "aaaaeiiouu" যা সুন্দর।
এটি সমাধান করতে আমরা নিচের ধাপগুলো অনুসরণ করব −
vowels := সব স্বরের একটি তালিকা ['a', 'e', 'i', 'o', 'u']
l := 0, r := 0, longest := 0
যতক্ষণ l < s-এর আকার, করুন
valid := True
vowels-এ প্রতিটি vowel-এর জন্য, করুন
valid := valid true এবং (r < s-এর আকার এবং s[r] == vowel)
যতক্ষণ r < s-এর আকার এবং s[r] == vowel, করুন
r := r + 1
যদি valid true হয়, তবে
longest := 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