Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

दिए गए स्ट्रिंग से किसी भी लंबाई के सभी संभावित स्ट्रिंग्स

इस खंड में हम देखेंगे कि किसी भी लंबाई के सभी संभावित स्ट्रिंग्स कैसे उत्पन्न करें, यह स्ट्रिंग बनाने के लिए कैरेक्टर्स के प्रत्येक संयोजन को लेगा। उदाहरण के लिए, यदि स्ट्रिंग ABC है, तो यह उत्पन्न करेगा: {A, B, C, AB, BA, BC, CB, CA, AC, ABC, ACB, BAC, BCA, CAB, CBA}।

एल्गोरिदम

printAllString(str)

शुरुआत
    n := स्ट्रिंग str की लंबाई
    count = 2^n - 1
    प्रत्येक संख्या 0 से count के लिए करें
        sub_str := खाली स्ट्रिंग
        j को 0 से n की रेंज में लिए करें
            यदि काउंटर का jवां बिट सेट है, तो
                str के jवें कैरेक्टर को sub_str के साथ जोड़ें
            यदि समाप्त
        पूर्ण
        दोहराएं:
            sub_string प्रिंट करें
        जब तक sub_string का अगला क्रमपरिवर्तन पूरा न हो जाए
    पूर्ण
समाप्त

उदाहरण

#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;

void printAllString(string str) {
    int n = str.size();
    unsigned int count = pow(2, n);
    for (int counter = 1; counter < count; counter++) {
        string subs = "";
        for (int j = 0; j < n; j++) {
            if (counter & (1 << j))
                subs.push_back(str[j]);
        }
        do {
            cout << subs << endl;
        } while (next_permutation(subs.begin(), subs.end()));
    }
}

int main() {
    printAllString("ABCD");
    return 0;
}

आउटपुट

A B AB BA C AC CA BC CB ABC ACB BAC BCA CAB CBA D AD DA BD DB ABD ADB BAD BDA DAB DBA CD DC ACD ADC CAD CDA DAC DCA BCD BDC CBD CDB DBC DCB ABCD ABDC ACBD ACDB ADBC ADCB BACD BADC BCAD BCDA BDAC BDCA CABD CADB CBAD CBDA CDAB CDBA DABC DACB DBAC DBCA DCAB DCBA
  1. - MySQL TRIM() फंक्शन से स्ट्रिंग के प्रीफिक्स/सफिक्स कैसे हटाएं

    TRIM() फंक्शन स्ट्रिंग से अग्रणी (leading), अनुगामी (trailing), या दोनों तरफ के विशिष्ट कैरेक्टर्स हटाता है। सिंटैक्स TRIM([{BOTH | LEADING | TRAILING} [str_to_remove] FROM] string) विकल्प विकल्पक्रिया BOTH (डिफ़ॉल्ट)दोनों तरफ से हटाएं LEADINGकेवल बाएं तरफ से हटाएं TRAILINGकेवल दाएं तरफ से हटाएं

  1. - C/C++ में एक नंबर डायल करने के लिए उपयोग की जा सकने वाली स्ट्रिंग्स के सभी संयोजन

    दिए गए नंबर के संबंध में, निम्नलिखित विशिष्टताओं की मदद से फोन में दिए गए नंबर को डायल करने के लिए उपयोग की जा सकने वाली स्ट्रिंग्स के सभी संभावित संयोजनों को प्रदर्शित या प्रिंट करें। दिए गए फोन में, हम डायल कर सकते हैं, 2 को A या B या C से लागू करके, 3 को D या E या F से लागू करके, ........... 8 क

  1. दिए गए कोण से चाप की लंबाई दिए गए कोण से चाप की लंबाई

    यहां हम दिए गए कोण से चाप की लंबाई प्राप्त करना देखेंगे। एक वृत्त दिया गया है। वृत्त की त्रिज्या दी गई है। हमारा कार्य त्रिज्या और कोण का उपयोग करके चाप की लंबाई प्राप्त करना है। कोण डिग्री में है। यहां r और x दिया गया है। हमें L का मान ज्ञात करना है। सूत्र इस प्रकार है: L = 2πr × (x/360) उदाहरण #i