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

C++-এ দুটি স্ট্রিং থেকে লার্জেস্ট মার্জ (Largest Merge) তৈরি করা


দুটি স্ট্রিং a, b থেকে মার্জ স্ট্রিং বানাতে হবে যেন লেক্সিকোগ্রাফিক্যালি সবচো বড় হয়। প্রতিটি ধাপে a এবং b-এর প্রথম চেরেক্টার তুলনা করে বড়টা নিতে হবে।

অ্যালগরিদম (রিকার্সিভ)

  • যদি a ≤ b হয়, তবে b[0] + merge(a, b.substr(1))
  • অন্যথায় a[0] + merge(a.substr(1), b)
  • বেস কেস: যেকোনো একটি খালি হলে বাকিটা যুক্ত করুন।

উদাহরণ

a="bacaa", b="abcaa" → আউটপুট: "bacabcaaaa"

ব্যাখ্যা: 'b' > 'a', তাই 'b' নেয়া হয়। তারপর 'a' vs 'a' → সমান, b[0]='b' > a[1]='a'... এইভাবে লেক্সিকোগ্রাফিক্যালি বড় স্ট্রিং বানায়।

উদাহরণ কোড

#include <bits/stdc++.h>
using namespace std;

string largestMerge(string a, string b) {
    if (a.empty() || b.empty()) return a + b;
    if (a <= b) return b[0] + largestMerge(a, b.substr(1));
    else return a[0] + largestMerge(a.substr(1), b);
}

int main() {
    string a = "bacaa", b = "abcaa";
    cout << largestMerge(a, b) << endl;
    return 0;
}

আউটপুট

bacabcaaaa

  1. সি++-এ দুটি বাইনারি স্ট্রিং যোগ করার প্রোগ্রাম

  2. C++-এ দুটি বাইনারি ট্রি মার্জ করা

  3. পাইথনে দুটি স্ট্রিংয়ের লার্জেস্ট মার্জ (Largest Merge) বের করা

  4. C++-এ স্ট্রিং গুণফল