স্ট্রিং হচ্ছে ক্যারেক্টার অ্যারে। এই সমস্যায় স্ট্রিং-এর উপাদানগুলাকে অল্টারনেট আপার ও লোয়ার কেসে সাজাতে হবে।
সমস্যা বর্ণনা - অল্টারনেট লোয়ার আপার স্ট্রিং সর্ট, এখানে আমাদের একটি অর্ডারহীন স্ট্রিং দেওয়া থাকে যেতে মিক্সড আপার ও লোয়ার কেস ক্যারেক্টার থাকে। এই স্ট্রিংকে এমনভাবে সাজাতে হবে যেন আপার ও লোয়ার কেস ক্যারেক্টার অল্টারনেট পজিশনে থাকে কিন্তু সর্টেড مانনারে।
উদাহরণ দিয়ে বুঝি:
Input: aFegrAfStRzsV Output: AaFeRfSgVrstz Explanation: আপার কেস ক্যারেক্টার: A F R S V লোয়ার কেস ক্যারেক্টার: a e f g r s t z দুইটাই সর্টেড ম্যাননারে আছে, এখন অল্টারনেট অর্ডারে সাজানো।
এখন সমাধান বানাই। একটি পদ্ধতি: আপারকেস ও লোয়ারকেস আলাদা দুটি অ্যারেতে সর্টেড অর্ডারে রাখুন এবং চূড়ান্ত স্ট্রিং-এ অল্টারনেট করুন। এই লজিকের ভিত্তিতে অ্যালগরিদম বানানো হলো।
আলগরিদম
Step 1: lowerCount[] অ্যারেতে সব লোয়ারকেস ক্যারেক্টার সর্টেড অর্ডারে যোগ করুন। Step 2: upperCount[] অ্যারেতে সব আপারকেস ক্যারেক্টার সর্টেড অর্ডারে যোগ করুন। Step 3: দুটি অ্যারে থেকে অল্টারনেট মান নিয়ে চূড়ান্ত স্ট্রিং বানান। Step 4: রেজাল্ট অ্যারে প্রিন্ট করুন।
C++ প্রোগ্রাম উদাহরণ
#include <iostream>
using namespace std;
#define MAX 26
void alternateULSort(string& s) ;
int main(){
string str = "aFegrAfStRzsV";
cout<<"The unsorted string is : "<
আউটপুট
The unsorted string is : aFegrAfStRzsV
The alternate lower upper sorted string is AaFeRfSgVrstz