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

C++-এ অভিন্ন অক্ষরের জোড়ার মধ্যে স্টার (*) যোগ করার রিকারসিভ প্রোগ্রাম


একটি স্ট্রিং দেওয়া থাকলে, সেটিতে থাকা প্রতিটি অভিন্ন অক্ষরের জোড়ার মধ্যে একটি স্টার (*) যোগ করতে হবে। এটি রিকারসিভ পদ্ধতিতে করা হবে।

যদি ইনপুট স্ট্রিং "wellness" হয়, তবে আউটপুট হবে "wel*lnes*s"।

উদাহরণ

ইনপুট − str1 = "happiness"

আউটপুট − * যোগ করার পর স্ট্রিং: hap*pines*s

ব্যাখ্যা − 'pp' এবং 'ss' জোড়ার মাঝপথে * যোগ করলে ফলাফল hap*pines*s হয়।

ইনপুট − str1 = "swimmmmingggg pooool"

আউটপুট − * যোগ করার পর স্ট্রিং: swim*m*m*ming*g*g*g po*o*o*ol

ব্যাখ্যা − 'mm', 'gg' ও 'oo' জোড়ার মাঝপথে * যোগ করলে ফলাফল swim*m*m*ming*g*g*g po*o*o*ol হয়।

প্রোগ্রামে ব্যবহৃত পদ্ধতি

প্রতি ইটারেশনে স্ট্রিং দুটি অংশে ভাগ করা হয়। যদি প্রথম অংশের শেষ অক্ষর ও দ্বিতীয় অংশের প্রথম অক্ষর একই হয়, তবে মাঝপথে '*' যোগ করা হয়। রিকারসন থামায় যখন দ্বিতীয় অংশের দৈর্ঘ্য ০ হয়।

  • ইনপুট স্ট্রিং str1 ও এর দৈর্ঘ্য len নিন।

  • addStar(string& s1, int i, int len1) ফাংশন স্ট্রিং, দৈর্ঘ্য ও বর্তমান ইনডেক্স নিয়ে কাজ করে।

  • tmp1 = s1-এর ০ থেকে i পর্যন্ত সাবস্ট্রিং।

  • tmp2 = s1-এর i থেকে len1+1 পর্যন্ত সাবস্ট্রিং।

  • যদি tmp1-এর শেষ অক্ষর ও tmp2-এর প্রথম অক্ষর সমান হয়, তবে s1 = tmp1 + '*' + tmp2 সেট করুন।

  • addStar(s1, i+1, len1) কল করে পরবর্তী ইটারেশনে যান।

  • শেষে main-এ ফলাফল প্রিন্ট করুন।

উদাহরণ কোড

#include <iostream>
using namespace std;

void addStar(string& s1, int i, int len1){
    string tmp1 = s1.substr(0, i);
    string tmp2 = s1.substr(i, len1 + 1);
    if (tmp2.length() == 0){
        return;
    }
    if (tmp1[i-1] == tmp2[0]){
        s1 = tmp1 + '*' + tmp2;
    }
    addStar(s1, i+1, len1);
}

int main(){
    string str1 = "aabbcccdddd";
    int len = str1.length();
    addStar(str1, 0, len-1);
    cout << "String after adding * : " << str1 << endl;
    return 0;
}

আউটপুট

উপরের কোড রান করলে নিচের আউটপুট পাওয়া যাবে:

String after adding * : a*ab*bc*c*cd*d*d*d
  1. C++-এ স্ট্রিংর প্রতিটি ক্যারেক্টারে লুপ চালানো

  2. স্ট্রিং থেকে অ্যালফাবেট বাদ দিয়ে সব ক্যারেক্টার মুছে ফেলার C++ প্রোগ্রাম

  3. দুই স্ট্রিং কনক্যাটেনেট (Concatenate) করার C++ প্রোগ্রাম

  4. স্ট্রিং-এ ক্যারেক্টার জোড়া সোয়াপ করার জাভা প্রোগ্রাম