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

C++ में लेक्सिकोग्राफिक क्रम में पावर सेट


इस समस्या में हमें 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

  1. सी ++ एसटीएल में get_allocator () सेट करें

    इस लेख में हम C++ STL में set::get_allocator() फंक्शन, उनके सिंटैक्स, वर्किंग और उनके रिटर्न वैल्यू पर चर्चा करने जा रहे हैं। C++ STL में क्या सेट होता है? सी ++ एसटीएल में सेट कंटेनर हैं जिनमें सामान्य क्रम में अद्वितीय तत्व होने चाहिए। सेट में अद्वितीय तत्व होने चाहिए क्योंकि तत्व का मान तत्व की

  1. C++ में सभी क्रमपरिवर्तनों को क्रमबद्ध (शब्दकोश) क्रम में प्रिंट करें

    इस समस्या में, हमें लंबाई n की एक स्ट्रिंग दी जाती है और हमें स्ट्रिंग के वर्णों के सभी क्रमपरिवर्तनों को क्रमबद्ध क्रम में प्रिंट करना होता है। समस्या को समझने के लिए एक उदाहरण लेते हैं: इनपुट: एक्सवाईजेड आउटपुट: XYZ, XZY, YXZ, YZX, ZXY, ZYX। यहां हमें सभी क्रमपरिवर्तन को लेक्सिकोग्राफिकल क्रम

  1. सी ++ एसटीएल में बनाम मानचित्र सेट करें

    सेट एक सार डेटा प्रकार है जिसमें प्रत्येक तत्व को अद्वितीय होना चाहिए क्योंकि तत्व का मान इसकी पहचान करता है। तत्व के मूल्य को एक बार सेट में जोड़ने के बाद संशोधित नहीं किया जा सकता है, लेकिन उस तत्व के संशोधित मूल्य को हटाना और जोड़ना संभव है। नक्शा एक सहयोगी कंटेनर है जो मैप किए गए फैशन में तत्वो