সংক্ষিপ্ত বিবরণ
এই প্রোগ্রামটি একটি স্ট্রিং নেয় এবং তার স্বরবর্ণ (vowel) ও ব্যঞ্জনবর্ণ (consonant) কে বारी-बারি (alternating) সাজায়। শর্ত: স্বর ও ব্যঞ্জনের সংখ্যা সমান বা পার্থক্য ১।
শর্তাবলী
- স্বর = ব্যঞ্জন → সম্ভব
- স্বর = ব্যঞ্জন + ১ → সম্ভব (স্বর দিয়ে শুরু)
- ব্যঞ্জন = স্বর + ১ → সম্ভব (ব্যঞ্জন দিয়ে শুরু)
- অন্যথায় → অসম্ভব
অ্যালগরিদম
- স্বর ও ব্যঞ্জন গণনা করুন
- পার্থক্য > 1 হলে এরর
- স্ট্রিংকে দুটি অংশে ভাগ করুন: vowel_str, consonant_str
- বари বারি পিক করে ফাইনাল স্ট্রিং বানান
উদাহরণ
individual → inidivudal (5 vowel, 5 consonant) noe → one (2 vowel, 1 consonant) objective → bojecitev (4 vowel, 5 consonant)
সি++ কোড (সংক্ষিপ্ত)
#include <iostream>
#include <string>
using namespace std;
bool isVowel(char c) {
return c=='a'||c=='e'||c=='i'||c=='o'||c=='u';
}
string alternate(string s) {
string v, c;
for (char ch: s) (isVowel(ch) ? v : c) += ch;
if (abs((int)v.size() - (int)c.size()) > 1) return "Impossible";
// বিন্যাস লজিক...
}
আউটপুট
Input: individual → Output: inidivudal Input: noe → Output: one Input: objective → Output: bojecitev