इस समस्या में हमें string str दिया जाता है। हमारा काम इस स्ट्रिंग के तत्वों के पावर सेट को लेक्सिकोग्राफिकल क्रम में प्रिंट करना है।
पावर सेट - समुच्चय का घात समुच्चय समुच्चय के सभी उपसमुच्चयों का समुच्चय है। P(S) द्वारा निरूपित किया जाता है जहाँ s समुच्चय है।
उदाहरण -
S = {1, 2, 3} ; p(S) = {{}, {1}, {1, 2}, {1, 3}, {2}, {2, 3}, {3}, {1,2,3}}
इस समस्या में, हम स्ट्रिंग को एक सेट के रूप में मानेंगे। तो, इसके पात्र सेट के तत्व होंगे।
आइए समस्या को समझने के लिए एक उदाहरण लेते हैं
इनपुट - str ="xyz"
आउटपुट - x xy xyz xz y yz z
इस समस्या को हल करने के लिए, हमें सरणी को क्रमबद्ध करना होगा, ताकि शब्दावली क्रम प्राप्त किया जा सके। फिर हम स्ट्रिंग के एक तत्व को ठीक करेंगे और बाकी तत्वों के लिए दोबारा कॉल करेंगे जो सभी सबस्ट्रिंग उत्पन्न करेंगे। और अगला क्रमपरिवर्तन प्राप्त करने के लिए पहले निश्चित तत्व को त्यागें।
उदाहरण
हमारे समाधान के कार्यान्वयन को दिखाने के लिए कार्यक्रम,
#include <bits/stdc++.h> using namespace std; void printAllSubsets(string str, int n, int index = -1, string subset = "") { if (index == n) return; cout<<subset<<"\n"; for (int i = index + 1; i < n; i++) { subset+= str[i]; printAllSubsets(str, n, i, subset); subset = subset.erase(subset.size() - 1); } return; } void GeneratePowerSet(string str) { sort(str.begin(), str.end()); printAllSubsets(str, str.size()); } int main() { string str = "xyz"; cout<<"Power Set of the string '"<<str<<"' is :\n"; GeneratePowerSet(str); return 0; }
आउटपुट
Power Set of the string 'xyz' is: x xy xyz xz y yz z