একটি লোয়ারকেস স্ট্রিং দেওয়া থাকে। এর মধ্যে থাকা স্বরবর্ণগুলো (a, e, i, o, u) রিভার্স করতে হবে, বাকি ক্যারেক্টার স্থির থাকবে। উদাহরণ: "hello" → "holle", "programming" → "prigrammong"।
সমাধানের পদ্ধতি
- স্ট্রিংকে ক্যারেক্টার লিস্টে রূপান্তর করুন।
- স্বরবর্ণগুলো এবং তাদের ইন্ডেক্স সংগ্রহ করুন।
- স্বরবর্ণ লিস্টটি রিভার্স করুন।
- মূল স্ট্রিংয়ের মাধ্যমে লুপ চালিয়ে নতুন স্ট্রিং তৈরি করুন: যদি ইন্ডেক্স স্বরবর্ণের হয়, তবে রিভার্স করা স্বরবর্ণ লিস্ট থেকে নিন, অন্যথায় মূল ক্যারেক্টার নিন।
উদাহরণ কোড
class Solution:
def reverseVowels(self, s):
chars = list(s)
index = []
vowels = []
for i in range(len(chars)):
if chars[i] in ['a','e','i','o','u']:
vowels.append(chars[i])
index.append(i)
vowels = vowels[::-1]
final = []
ind = 0
for i in range(len(chars)):
if i in index:
final.append(vowels[ind])
ind += 1
else:
final.append(chars[i])
str1 = ""
return str1.join(final)
ob1 = Solution()
print(ob1.reverseVowels("hello"))
print(ob1.reverseVowels("programming"))
ইনপুট
"hello" "programming"
আউটপুট
holle prigrammong