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

C++ में संतुलित पैरेंथेसिस के सभी संयोजन प्रिंट करना


इस समस्या में, हमें एक पूर्णांक n दिया गया है। हमारा कार्य n संतुलित पैरेंथेसिस के सभी संभावित जोड़े प्रिंट करना है।

संतुलित पैरेंथेसिस

संतुलित पैरेंथेसिस वे पैरेंथेसिस जोड़े हैं जिनमें प्रत्येक संबंधित ओपनिंग सिंबल के लिए एक क्लोजिंग सिंबल होता है। साथ ही, जोड़े ठीक से नेस्टेड होने चाहिए।

उदाहरण

Input: n = 2 
Output: {}{} {{}}

इस समस्या को हल करने के लिए, हमें ब्रैकेट्स के जोड़े का ट्रैक रखना होगा। ब्रैकेट्स की प्रारंभिक संख्या 0 है। फिर हम एक फंक्शन को रिकर्सिवली कॉल करेंगे जब तक कुल ब्रैकेट काउंट n से कम है। ब्रैकेट्स गिनें, काउंट के आधार पर ब्रैकेट्स के लिए रिकर्सिवली कॉल करें। यदि ओपनिंग ब्रैकेट काउंट क्लोजिंग से अधिक है, तो क्लोजिंग ब्रैकेट डालें और फिर शेष जोड़ों के लिए जाएं, यदि ओपनिंग ब्रैकेट n से कम है तो शेष ब्रैकेट जोड़ों के लिए रिकर्सिवली कॉल करें।

उदाहरण

नीचे दिया गया कोड हमारे समाधान का कार्यान्वयन दिखाएगा:

# include<iostream> 
using namespace std; 

# define MAX_COUNT 100 

void printParenthesesPairs(int pos, int n, int open, int close) { 
    static char str[MAX_COUNT]; 
    if(close == n) { 
        cout << str << endl; 
        return; 
    } else { 
        if(open > close) { 
            str[pos] = '}'; 
            printParenthesesPairs(pos+1, n, open, close+1); 
        } 
        if(open < n) { 
            str[pos] = '{'; 
            printParenthesesPairs(pos+1, n, open+1, close); 
        } 
    } 
} 

int main() { 
    int n = 3; 
    cout << "All parentheses pairs of length " << n << " are:\n"; 
    if(n > 0) 
        printParenthesesPairs(0, n, 0, 0); 
    getchar(); 
    return 0; 
}

आउटपुट

All parentheses pairs of length 3 are - 
{}{}{} {}{{}} {{}}{} {{}{}} {{{}}}

  1. - C++ में लेक्सिकोग्राफिकल क्रम में स्ट्रिंग के सभी संयोजन (Combinations) प्रिंट करें

    इस समस्या में, हमें स्ट्रिंग str दी गई है, और हमें स्ट्रिंग में वर्णों के सभी संयोजनों को लेक्सिकोग्राफिकल क्रम में प्रिंट करना है। समस्या को बेहतर ढंग से समझने के लिए एक उदाहरण लेते हैं - इनपुट: str = XYZ आउटपुट: X XY XYZ XZ XZY Y YX YXZ YZ YZX Z ZX ZXY ZY ZYX इस समस्या को हल करने के लिए, हम स्ट्रि

  1. - C++ में दिए गए योग वाले सभी युग्म प्रिंट करें

    इस समस्या में, हमें पूर्णांकों की एक सरणी और एक पूर्णांक योग दिया गया है और हमें उन सभी पूर्णांक युग्मों को प्रिंट करना है जिनका योग योग मान के बराबर है। समस्या को समझने के लिए एक उदाहरण लेते हैं : इनपुट - सरणी = {1, 6, -2, 3} योग = 4 आउटपुट - (1, 3) , (6, -2) यहां, हमें दिए गए योग मान वाले युग्म चा

  1. - C++ में स्ट्रिंग के सभी पैलिंड्रोम क्रमपरिवर्तन प्रिंट करें

    इस समस्या में, हमें एक स्ट्रिंग दी गई है और हमें उस स्ट्रिंग के वर्णों से संभव सभी पैलिंड्रोमिक क्रमपरिवर्तन प्रिंट करने हैं। समस्या को समझने के लिए एक उदाहरण लेते हैं - इनपुट - स्ट्रिंग = aabb आउटपुट - abba baab इस समस्या को हल करने के लिए हमें स्ट्रिंग के वर्णों को लेना होगा और एक-एक करके इन वर्णो