কম্পিউটার

C++ এ একজোড়া অভিন্ন অক্ষরের মধ্যে একটি তারকা সন্নিবেশ করার জন্য পুনরাবৃত্তিমূলক প্রোগ্রাম


ইনপুট হিসাবে একটি স্ট্রিং str1 দেওয়া হয়েছে। লক্ষ্য হল ইনপুট স্ট্রিং-এ একজোড়া অভিন্ন অক্ষরগুলির মধ্যে একটি '*' সন্নিবেশ করানো এবং একটি পুনরাবৃত্তিমূলক পদ্ধতি ব্যবহার করে ফলাফল স্ট্রিংটি ফিরিয়ে দেওয়া৷

যদি ইনপুট স্ট্রিং হয় str1="সুস্থতা" তাহলে আউটপুট হবে "wel*lnes*s"

উদাহরণ

ইনপুট − str1="সুখ"

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

ব্যাখ্যা − pp এবং ss জোড়ার মধ্যে * যোগ করলে ফলস্বরূপ স্ট্রিং পাওয়া যাবে hap*pines*s

ইনপুট − str1=”swimmmingggg pooool”

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

ব্যাখ্যা − mm, gg এবং oo জোড়ার মধ্যে * যোগ করলে ফলস্বরূপ স্ট্রিং পাওয়া যায় swim*m*m*ming*g*g po*o*o*ol

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

এই পদ্ধতিতে স্ট্রিং str1 নিন। প্রতিটি পুনরাবৃত্তিতে মধ্যবিন্দু হিসাবে বর্তমান সূচক সহ str1 কে দুই ভাগে ভাগ করুন। যদি প্রথম সাবস্ট্রিং-এর শেষ অক্ষর পরবর্তী সাবস্ট্রিং-এর প্রথম অক্ষরের মতো হয়, তাহলে মূল স্ট্রিংকে সাবস্ট্রিং 1 হিসাবে সেট করুন এবং তারপরে '*' তারপরে সাবস্ট্রিং2। সাবস্ট্রিং2 এর দৈর্ঘ্য 0 হলে পুনরাবৃত্তি শেষ করুন।

  • ইনপুট স্ট্রিংটিকে str1 হিসাবে নিন এবং লেন হিসাবে এর দৈর্ঘ্য গণনা করুন।

  • ফাংশন addStar(string&s1, int i, int len1) s1 নেয়, এর দৈর্ঘ্য এবং বর্তমান সূচক ইনপুট হিসাবে এবং * যোগ করে যদি দুটি জোড়া অক্ষর একই হয়..

  • সূচক 0 থেকে i

    পর্যন্ত s1 এর সাবস্ট্রিং হিসাবে tmp1 নিন
  • সূচী i থেকে len1 + 1 পর্যন্ত s1 এর সাবস্ট্রিং হিসাবে tmp2 নিন।

  • tmp1 এর শেষ অক্ষর এবং tmp2 এর প্রথম অক্ষর সমান হলে s1=tmp1+’*’+tmp2 সেট করুন।

  • কল addStar(s1, i+1, len1); পরবর্তী পুনরাবৃত্তির জন্য।

  • শেষে প্রধান ভিতরে str1 প্রিন্ট করুন।

উদাহরণ

#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. দুটি স্ট্রিংকে সংযুক্ত করার জন্য C++ প্রোগ্রাম

  4. অক্ষর জোড়া অদলবদল করতে জাভা প্রোগ্রাম