কম্পিউটার

C++ এ একটি স্ট্রিংয়ের সমস্ত প্যালিনড্রোমিক পার্টিশন প্রিন্ট করুন


এই সমস্যায়, আমাদের একটি প্যালিনড্রোমিক স্ট্রিং দেওয়া হয়েছে। এবং আমাদের এই স্ট্রিং এর সমস্ত পার্টিশন প্রিন্ট করতে হবে। এই সমস্যায়, আমরা স্ট্রিংয়ের সম্ভাব্য সমস্ত প্যালিন্ড্রোম পার্টিশনগুলি কেটে এটি খুঁজে পাব৷

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

ইনপুট৷ − স্ট্রিং ='আবাবা'
আউটপুট − আবাবা , a bab a , a b a b a ….

এই সমস্যার সমাধান হল, একটি সাবস্ট্রিং প্যালিনড্রোম কিনা তা পরীক্ষা করা। এবং সাবস্ট্রিং প্রিন্ট করুন যদি এটি সাবস্ট্রিং হয়।

উদাহরণ

নিচের প্রোগ্রামটি সমাধানটি ব্যাখ্যা করবে −

#include<bits/stdc++.h>
using namespace std;
bool isPalindrome(string str, int low, int high){
   while (low < high) {
      if (str[low] != str[high])
         return false;
      low++;
      high--;
   }
   return true;
}
void palindromePartition(vector<vector<string> >&allPart, vector<string> &currPart, int start, int n, string str){
   if (start >= n) {
      allPart.push_back(currPart);
      return;
   }
   for (int i=start; i<n; i++){
      if (isPalindrome(str, start, i)) {
         currPart.push_back(str.substr(start, i-start+1));
         palindromePartition(allPart, currPart, i+1, n, str);
         currPart.pop_back();
      }
   }
}
void generatePalindromePartitions(string str){
   int n = str.length();
   vector<vector<string> > partitions;
   vector<string> currPart;
   palindromePartition(partitions, currPart, 0, n, str);
   for (int i=0; i< partitions.size(); i++ ) {
      for (int j=0; j<partitions[i].size(); j++)
      cout<<partitions[i][j]<<" ";
      cout<<endl;
   }
}
int main() {
   string str = "abaaba";
   cout<<"Palindromic partitions are :\n";
   generatePalindromePartitions(str);
   return 0;
}

আউটপুট

Palindromic partitions are :
a b a a b a
a b a aba
a b aa b a
a baab a
aba a b a
aba aba
abaaba

  1. C++-এ অক্ষরের পুনরাবৃত্তি সহ সমস্ত স্থানান্তর প্রিন্ট করুন

  2. C++ এ বন্ধনী আকারে একটি স্ট্রিং ভাঙ্গার সমস্ত উপায় প্রিন্ট করুন

  3. একটি স্ট্রিং (পুনরাবৃত্ত) C++ বিপরীত করুন

  4. একটি প্রদত্ত স্ট্রিং এর সমস্ত সাবস্ট্রিং C++ এ প্রিন্ট করার জন্য প্রোগ্রাম