इस समस्या में, हमें एक स्ट्रिंग दी जाती है और हमें उन सभी स्ट्रिंग को प्रिंट करना होता है जो स्ट्रिंग के वर्णों के बीच में जगह रखकर इस स्ट्रिंग का उपयोग करके बनाई जा सकती हैं।
आइए विषय को बेहतर ढंग से समझने के लिए एक उदाहरण लेते हैं -
Input: string = ‘XYZ’ Output: XYZ, XY Z, X YZ, X Y Z
इस समस्या को हल करने के लिए, हमें उन सभी संभावित तरीकों को खोजना होगा जिनसे हम स्ट्रिंग में जगह बना सकते हैं। इसके लिए हम रिकर्सन का उपयोग करेंगे। इसमें, हम एक-एक करके रिक्त स्थान रखेंगे और एक नई स्ट्रिंग उत्पन्न करेंगे।
उदाहरण
#include <iostream> #include <cstring> using namespace std; void printPattern(char str[], char buff[], int i, int j, int n){ if (i==n){ buff[j] = '\0'; cout << buff << endl; return; } buff[j] = str[i]; printPattern(str, buff, i+1, j+1, n); buff[j] = ' '; buff[j+1] = str[i]; printPattern(str, buff, i+1, j+2, n); } int main() { char *str = "XYZ"; int n = strlen(str); char buf[2*n]; buf[0] = str[0]; cout<<"The string generated using space are :\n"; printPattern(str, buf, 1, 1, n); return 0; }
आउटपुट
स्पेस का उपयोग करके उत्पन्न स्ट्रिंग हैं -
XYZ XY Z X YZ X Y Z