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

अभिव्यक्ति में दिए गए प्रारंभिक ब्रैकेट के लिए समापन ब्रैकेट का इंडेक्स खोजें C++ में

मान लीजिए हमारे पास ब्रैकेट के साथ एक अभिव्यक्ति है। यदि एक प्रारंभिक ब्रैकेट का इंडेक्स दिया गया है, तो हमें उस समापन ब्रैकेट को खोजना है। तो यदि अभिव्यक्ति इस तरह है: (25*6+(88-32+(50/10)+20)), और प्रारंभिक ब्रैकेट का इंडेक्स 6 है, तो समापन ब्रैकेट स्थिति 23 पर होगा।

यहां हम इस समस्या को हल करने के लिए स्टैक डेटा-स्ट्रक्चर का उपयोग करेंगे। हम दिए गए इंडेक्स से अभिव्यक्ति को पार करेंगे, और प्रारंभिक ब्रैकेट को पुश करना शुरू करेंगे, जब समापन ब्रैकेट मिलेगा, तो स्टैक से तत्व पॉप करेंगे, जब स्टैक खाली हो जाए, तो इंडेक्स वापस करें।

उदाहरण

#include <iostream>
#include <stack>
using namespace std;

void getEndingBracketIndex(string exp, int index) {
    int i;
    if (exp[index] != '(') {
        cout << exp << "Closing bracket of parentheses started at " << index << " present at index -1\n";
        return;
    }
    stack<int> stk;
    for (i = index; i < exp.length(); i++) {
        if (exp[i] == '(')
            stk.push(exp[i]);
        else if (exp[i] == ')') {
            stk.pop();
            if (stk.empty()) {
                cout << exp << ", Closing bracket of parentheses started at " << index << " present at index " << i << "";
                return;
            }
        }
    }
    cout << exp << ", Closing bracket of parentheses started at " << index << " present at index -1";
}

int main() {
    getEndingBracketIndex("(25*6+(88-32+(50/10)+20))", 6);
}

आउटपुट

(25*6+(88-32+(50/10)+20)), Closing bracket of parentheses started at 6 present at index 23

  1. C++ में दिए गए बिंदुओं के समुच्चय के लिए सरल बंद पथ ढूंढना C++ में दिए गए बिंदुओं के समुच्चय के लिए सरल बंद पथ ढूंढना

    मान लीजिए हमारे पास बिंदुओं का एक समुच्चय है। हमें उन सभी बिंदुओं को कवर करने वाला एक सरल बंद पथ ढूंढना है। मान लीजिए बिंदु नीचे जैसे हैं, और अगली छवि उन बिंदुओं पर एक बंद पथ बना रही है।पथ प्राप्त करने के लिए, हमें इन चरणों का पालन करना होगा -नीचे-बाएं बिंदु को P के रूप में ढूंढेंअन्य n-1 बिंदुओं को

  1. - C++ में ग्नोम सॉर्ट प्रोग्राम

    ग्नोम सॉर्ट क्या है? यहां हम देखेंगे कि ग्नोम सॉर्ट कैसे काम करता है। यह एक और सॉर्टिंग एल्गोरिदम है। इस दृष्टिकोण में यदि सूची पहले से सॉर्टेड है तो यह O(n) समय लेता है। इसलिए सर्वश्रेष्ठ स्थिति समय जटिलता O(n) है। लेकिन औसत स्थिति और सबसे खराब स्थिति जटिलता O(n²) है। एल्गोरिदम gnomeSort(arr, n):

  1. - दिए गए प्रीफिक्स एक्सप्रेशन के लिए C++ में एक्सप्रेशन ट्री का निर्माण

    एक एक्सप्रेशन ट्री मूलतः एक बाइनरी ट्री है जिसका उपयोग एक्सप्रेशन को दर्शाने के लिए किया जाता है। एक एक्सप्रेशन ट्री में, इंटरनल नोड्स ऑपरेटर्स से संबंधित होते हैं और प्रत्येक लीफ नोड ऑपरेंड्स से संबंधित होते हैं। यहां इनऑर्डर, प्रीऑर्डर और पोस्टऑर्डर ट्रैवर्सल में प्रीफिक्स एक्सप्रेशन के लिए एक्सप्