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

C++ में डुप्लिकेट वाले दिए गए स्ट्रिंग के सभी विशिष्ट क्रमचय प्रिंट करना


इस समस्या में, हमें एक स्ट्रिंग दी गई है जिसमें डुप्लिकेट कैरेक्टर हो सकते हैं। हमारा कार्य स्ट्रिंग के सभी विशिष्ट क्रमचय प्रिंट करना है।

उदाहरण

Input: string = "XYZ" 
Output: XYZ XZY YXZ YZX ZYX ZXY

इस समस्या को हल करने के लिए, हमें स्ट्रिंग के एक एलिमेंट को फिक्स करना होगा। और फिर स्ट्रिंग के सभी एलिमेंट्स पर पुनरावृति करनी होगी।

उदाहरण

हमारे समाधान को लागू करने वाला प्रोग्राम:

#include <string.h> 
#include <iostream> 
using namespace std; 

int compare(const void* a, const void* b) { 
    return (*(char*)a - *(char*)b); 
} 

void swapChar(char* a, char* b) { 
    char t = *a; 
    *a = *b; 
    *b = t; 
} 

int findCeil(char str[], char first, int l, int h) { 
    int ceilIndex = l; 
    for (int i = l + 1; i <= h; i++) 
        if (str[i] > first && str[i] < str[ceilIndex]) 
            ceilIndex = i; 
    return ceilIndex; 
} 

void printPermutations(char str[]) { 
    int size = strlen(str); 
    qsort(str, size, sizeof(str[0]), compare); 
    bool isFinished = false; 
    while (!isFinished) { 
        static int x = 1; 
        cout << str << "\t"; 
        int i; 
        for (i = size - 2; i >= 0; --i) 
            if (str[i] < str[i + 1]) 
                break; 
        if (i == -1) 
            isFinished = true; 
        else { 
            int ceilIndex = findCeil(str, str[i], i + 1, size - 1); 
            swapChar(&str[i], &str[ceilIndex]); 
            qsort(str + i + 1, size - i - 1, sizeof(str[0]), compare); 
        } 
    } 
} 

int main() { 
    char str[] = "SNGY"; 
    cout << "All permutations of the string" << str << " are :\n"; 
    printPermutations(str); 
    return 0; 
}

आउटपुट

All permutations of the stringSNGY are - 
GNSY GNYS GSNY GSYN GYNS GYSN NGSY NGYS NSGY NSYG NYGS NYSG SGNY SGYN SNGY SNYG SYGN SYNG YGNS YGSN YNGS YNSG YSGN YSNG

  1. - C++ में दिए गए स्ट्रिंग के सभी सबस्ट्रिंग प्रिंट करने का प्रोग्राम

    इस ट्यूटोरियल में, हम दिए गए स्ट्रिंग के सभी सबस्ट्रिंग प्रिंट करने के प्रोग्राम पर चर्चा करेंगे। इसके लिए हमें एक स्ट्रिंग या कैरेक्टर्स का ऐरे दिया जाएगा। हमारा कार्य उस विशेष स्ट्रिंग के सभी सबस्ट्रिंग प्रिंट करना है। उदाहरण #include using namespace std; // सभी सबस्ट्रिंग प्रिंट करना void pr

  1. - C++ में दी गई रेंज में सभी पालिंड्रोम प्रिंट करने का प्रोग्राम

    इस ट्यूटोरियल में, हम दी गई रेंज में सभी पालिंड्रोम प्रिंट करने के प्रोग्राम पर चर्चा करेंगे। इसके लिए हमें वह गणितीय रेंज दी जाएगी जिसमें पालिंड्रोम ढूंढने हैं। हमारा कार्य उस रेंज में सभी पालिंड्रोम ढूंढना और उन्हें वापस प्रिंट करना है। उदाहरण #include 0; i /= 10) rev = rev*10 + i%10;

  1. पायथन प्रोग्राम: दी गई स्ट्रिंग के सभी क्रमपरिवर्तन प्रिंट करें पायथन प्रोग्राम: दी गई स्ट्रिंग के सभी क्रमपरिवर्तन प्रिंट करें

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक स्ट्रिंग दी गई है, हमें स्ट्रिंग के सभी संभावित क्रमपरिवर्तन प्रदर्शित करने हैं। उदाहरण # रूपांतरण def toString(List): return .join(List) # क्रमपरिवर्तन def permute(a, l, r): if l == r: print(toString(a))