ในปัญหานี้ เราได้รับสตริง 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