इस समस्या में, हमें वर्णों का एक सेट और एक धनात्मक पूर्णांक k दिया जाता है और हमें k लंबाई के सभी संभावित स्ट्रिंग्स को प्रिंट करना होता है जो सेट के वर्णों का उपयोग करके उत्पन्न की जा सकती हैं।
आइए समस्या को बेहतर ढंग से समझने के लिए एक उदाहरण लेते हैं -
Input: set = {‘x’, ‘y’, ‘z’} , k = 2 Output: xy, xz, yz
इस समस्या को हल करने के लिए, हमें उन सभी संभावित अनुक्रमों को खोजना होगा जो उत्पन्न हो सकते हैं। आकार n के सेट के लिए, लंबाई के संभावित स्ट्रिंग की कुल संख्या n k होगी (एन ^ के)। हम स्ट्रिंग को उत्पन्न करने के लिए एक पुनरावर्ती कॉल का उपयोग करेंगे जो खाली स्ट्रिंग से शुरू होगी और इसमें वर्ण द्वारा वर्ण जोड़ेंगे।
उदाहरण
#include <bits/stdc++.h> using namespace std; void printKLengthString(char set[], string sequence, int n, int k) { if (k == 0){ cout<<sequence<<"\t"; return; } for (int i = 0; i < n; i++){ string newSequence; newSequence=sequence+set[i]; printKLengthString(set, newSequence, n, k - 1); } } int main() { char set[] = {'a', 'b'}; int n = 2; int k = 3; printKLengthString(set, "", n, k); }
आउटपुट
aaa aab aba abb baa bab bba bbb