इस समस्या में, हमें कैरेक्टर्स का एक सेट और एक धनात्मक पूर्णांक k दिया गया है और हमें उन सभी संभावित स्ट्रिंग्स को प्रिंट करना है जिनकी लंबाई k है और जो सेट के कैरेक्टर्स का उपयोग करके उत्पन्न की जा सकती हैं।
आइए समस्या को बेहतर ढंग से समझने के लिए एक उदाहरण लेते हैं −
Input: set = {‘x’, ‘y’, ‘z’} , k = 2 Output: xy, xz, yzइस समस्या को हल करने के लिए, हमें उन सभी संभावित अनुक्रमों को ढूंढना होगा जो उत्पन्न किए जा सकते हैं। आकार n के सेट के लिए, लंबाई k की संभावित स्ट्रिंग्स की कुल संख्या nk (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