কম্পিউটার টিউটোরিয়াল

C++-এ অল্টারনেট লোয়ার-আপার কেস স্ট্রিং সর্ট

স্ট্রিং হচ্ছে ক্যারেক্টার অ্যারে। এই সমস্যায় স্ট্রিং-এর উপাদানগুলাকে অল্টারনেট আপার ও লোয়ার কেসে সাজাতে হবে।

সমস্যা বর্ণনা - অল্টারনেট লোয়ার আপার স্ট্রিং সর্ট, এখানে আমাদের একটি অর্ডারহীন স্ট্রিং দেওয়া থাকে যেতে মিক্সড আপার ও লোয়ার কেস ক্যারেক্টার থাকে। এই স্ট্রিংকে এমনভাবে সাজাতে হবে যেন আপার ও লোয়ার কেস ক্যারেক্টার অল্টারনেট পজিশনে থাকে কিন্তু সর্টেড مانনারে।

উদাহরণ দিয়ে বুঝি:

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
  1. C++-এ আপার ডায়াগোনালকে লোয়ার ডায়াগোনালের সাথে সোয়াপ করা

  2. C++-এ std::string কে lowercase-এ কনভার্ট করা: transform() ফাংশন

  3. C++ স্ট্রিংকে আপারকেসে রূপান্তর

  4. C++-এ স্ট্রিং টোকেনাইজ (Tokenize) করা