Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में एक स्ट्रिंग के सभी पैलिंड्रोमिक विभाजनों को प्रिंट करें


इस समस्या में, हमें एक पैलिंड्रोमिक स्ट्रिंग दी जाती है। और हमें इस स्ट्रिंग के सभी पार्टिशन को प्रिंट करना है। इस समस्या में, हम स्ट्रिंग के सभी संभावित पैलिंड्रोम विभाजन को काटकर पाएंगे।

समस्या को समझने के लिए एक उदाहरण लेते हैं -

इनपुट - स्ट्रिंग ='अबाबा'
आउटपुट - अबाबा, ए बाब ए, ए बी ए बी ए….

इस समस्या का समाधान यह जांचना है कि कोई सबस्ट्रिंग पैलिंड्रोम है या नहीं। और अगर सबस्ट्रिंग सबस्ट्रिंग है तो उसे प्रिंट करें।

उदाहरण

नीचे दिया गया प्रोग्राम समाधान का वर्णन करेगा -

#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++ में एक स्ट्रिंग को ब्रैकेट रूप में तोड़ने के सभी तरीकों को प्रिंट करें

    इस समस्या में, हमें एक स्ट्रिंग दी जाती है और हमें इसे सबस्ट्रिंग में तोड़ना होता है और उन्हें संलग्न कोष्ठक में प्रिंट करना होता है। आइए समस्या को बेहतर ढंग से समझने के लिए कुछ उदाहरण लें, Input : wxyz Output :    (w) (x) (y) (z)    (w) (x) (yz)    (w) (xy) (z)  

  1. एक स्ट्रिंग को उल्टा करें (पुनरावृत्तीय) C++

    C++ कोड में एक स्ट्रिंग को उलटने के लिए ढेर, इन-प्लेस और पुनरावृत्ति सहित कई तरीके परिभाषित हैं। इस नमूने में, एक साधारण स्ट्रिंग को निम्नलिखित एल्गोरिथम के साथ पुनरावृत्त रूप से उलट दिया जाएगा; एल्गोरिदम START    Step-1: Input the string    Step-2: Get the length of the string u

  1. किसी दिए गए स्ट्रिंग के सभी सबस्ट्रिंग को C++ में प्रिंट करने का प्रोग्राम

    इस ट्यूटोरियल में, हम किसी दिए गए स्ट्रिंग के सभी सबस्ट्रिंग को प्रिंट करने के लिए एक प्रोग्राम पर चर्चा करेंगे। इसके लिए हमें एक स्ट्रिंग या वर्णों की एक सरणी दी जाएगी। हमारा काम उस विशेष स्ट्रिंग के सभी सबस्ट्रिंग को प्रिंट करना है। उदाहरण #include<bits/stdc++.h> using namespace std; //prin