इस समस्या में, हमें एक स्ट्रिंग दी जाती है और हमें इसे सबस्ट्रिंग में तोड़ना होता है और उन्हें संलग्न कोष्ठक में प्रिंट करना होता है।
आइए समस्या को बेहतर ढंग से समझने के लिए कुछ उदाहरण लें,
Input : wxyz Output : (w) (x) (y) (z) (w) (x) (yz) (w) (xy) (z) (w) (xyz) (wx) (y) (z) (wx) (yz) (wxy) (z) (wxyz)
स्पष्टीकरण - हम स्ट्रिंग को सभी संभावित सबस्ट्रिंग में तोड़ देंगे। और प्रत्येक सबस्ट्रिंग को कोष्ठक के साथ संलग्न करें।
अब, चूंकि हम समस्या को समझ चुके हैं, आइए समस्या का समाधान तैयार करें।
यहां, हम समस्या को हल करने के लिए रिकर्सन का उपयोग करेंगे। हम दो मापदंडों का उपयोग करेंगे, एक स्ट्रिंग का अगला वर्ण होगा और दूसरा आउटपुट स्ट्रिंग होगा। असंसाधित सबस्ट्रिंग को प्रत्येक पुनरावृत्ति पर धीरे-धीरे संसाधित किया जाएगा। और सबसेट बनाए जाते हैं।
उदाहरण
समस्या को हल करने के लिए कार्यक्रम -
#include <iostream> using namespace std; void substring(string str, int index, string out){ if (index == str.length()) cout << out << endl; for (int i = index; i < str.length(); i++) substring(str, i + 1, out + "(" + str.substr(index, i+1-index) + ")" ); } int main(){ string str = "wxyz"; cout<<”The substring are :”<<endl; substring(str, 0, ""); return 0; }
आउटपुट
The substring are : (w)(x)(y)(z) (w)(x)(yz) (w)(xy)(z) (w)(xyz) (wx)(y)(z) (wx)(yz) (wxy)(z) (wxyz)