কম্পিউটার

প্রদত্ত দুটি স্ট্রিংয়ের সমস্ত ইন্টারলিভিং C++ এ প্রিন্ট করুন


এই সমস্যায়, আমাদের দুটি স্ট্রিং str1 এবং str2 দেওয়া হয়েছে এবং আমাদের উভয় স্ট্রিং থেকে সমস্ত ইন্টারলিভিং স্ট্রিং প্রিন্ট করতে হবে৷

ইন্টারলিভিং স্ট্রিং দুটি প্রদত্ত স্ট্রিং ব্যবহার করে তৈরি করা হয়েছে যাতে প্রতিটি স্ট্রিংয়ের অক্ষরের ক্রম।

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক -

Input: str1 = “XY” str2= “NS”
Output: XYNS, XNYS, XNSY, NXYS, NXSY, NSXY

এই সমস্যাটি সমাধান করার জন্য, আমরা স্ট্রিংগুলির সমস্ত অক্ষর নেব। str1 =m এর দৈর্ঘ্য এবং str2 =n এর দৈর্ঘ্য তাই আমরা এই স্ট্রিংগুলি থেকে সমস্ত ইন্টারলিভড স্ট্রিং তৈরি করব।

সমস্ত ইন্টারলিভিং স্ট্রিং প্রিন্ট করার জন্য, আমরা স্ট্রিংগুলির অক্ষরগুলি ঠিক করব এবং স্ট্রিংগুলির সমস্ত সংমিশ্রণের জন্য পুনরাবৃত্তিমূলকভাবে কল করব৷

উদাহরণ

আমাদের যুক্তি-

বাস্তবায়ন
#include <iostream>
#include <string.h>
using namespace std;
void printStrings (char *str1, char *str2, char *iStr, int m, int n, int i) {
   if (m == 0 && n == 0)
      cout<<iStr<<endl ;
   if (m != 0) {
      iStr[i] = str1[0];
      printStrings(str1 + 1, str2, iStr, m - 1, n, i + 1);
   }
   if (n != 0) {
      iStr[i] = str2[0];
      printStrings(str1, str2 + 1, iStr, m, n - 1, i + 1);
   }
}
void generateInterleavingString(char *str1, char *str2, int m, int n) {
   char *iStr= new char[((m + n + 1)*sizeof(char))];
   iStr[m + n] ='\0';
   printStrings(str1, str2, iStr, m, n, 0);
}
int main() {
   char str1[] = "XY";
   char str2[] = "NS";
   cout<<"All interleaving string are :\n";
   generateInterleavingString(str1, str2, strlen(str1), strlen(str2));
   return 0;
}

আউটপুট

All interleaving string is −
XYNS
XNYS
XNSY
NXYS
NXSY
NSXY

  1. C++ এ প্রদত্ত নোড থেকে k দূরত্বে সমস্ত নোড প্রিন্ট করুন

  2. C++ এ বাইনারি ট্রি-তে দুটি প্রদত্ত স্তরের মধ্যে সমস্ত নোড প্রিন্ট করুন

  3. একটি প্রদত্ত উত্স থেকে একটি গন্তব্য C++ এ সমস্ত পথ প্রিন্ট করুন

  4. দুটি প্রদত্ত স্ট্রিংয়ে অস্বাভাবিক অক্ষর খুঁজে পেতে C++ প্রোগ্রাম