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

C++ में अभिव्यक्ति में संतुलित पैरेंथेसिस की जांच


मान लीजिए हमारे पास एक अभिव्यक्ति है। अभिव्यक्ति में कुछ पैरेंथेसिस हैं; हमें जांचना है कि पैरेंथेसिस संतुलित हैं या नहीं। पैरेंथेसिस का क्रम (), {} और [] है। मान लीजिए दो स्ट्रिंग्स हैं। "()[(){()}]" यह वैध है, लेकिन "{[}]" अवैध है।

कार्य सरल है; हम इसे करने के लिए स्टैक का उपयोग करेंगे। हमें समाधान प्राप्त करने के लिए इन चरणों का पालन करना चाहिए -

  • अभिव्यक्ति को तब तक ट्रैवर्स करें जब तक यह समाप्त न हो जाए
    • यदि वर्तमान वर्ण प्रारंभिक ब्रैकेट जैसे (, { या [ है, तो स्टैक में पुश करें
    • यदि वर्तमान वर्ण समापन ब्रैकेट जैसे ), } या ] है, तो स्टैक से पॉप करें, और जांचें कि पॉप किया गया ब्रैकेट वर्तमान वर्ण का संबंधित प्रारंभिक ब्रैकेट है या नहीं, तो यह ठीक है, अन्यथा वह संतुलित नहीं है।
  • स्ट्रिंग समाप्त होने के बाद, यदि स्टैक में कुछ प्रारंभिक ब्रैकेट बचे हैं, तो स्ट्रिंग संतुलित नहीं है।

उदाहरण

#include <iostream> #include <stack> using namespace std; bool isBalancedExp(string exp) {    stack<char> stk;    char x;    for (int i=0; i<exp.length(); i++) {       if (exp[i]=='('||exp[i]=='['||exp[i]=='{') {          stk.push(exp[i]);          continue;       }       if (stk.empty())          return false;       switch (exp[i]) {       case ')':          x = stk.top();          stk.pop();          if (x=='{' || x=='[')             return false;          break;       case '}':          x = stk.top();          stk.pop();          if (x=='(' || x=='[')             return false;          break;       case ']':          x = stk.top();          stk.pop();          if (x =='(' || x == '{')             return false;          break;       }    }    return (stk.empty()); } int main() {    string expresion = "()[(){()}]";    if (isBalancedExp(expresion))       cout << "This is Balanced Expression";    else       cout << "This is Not Balanced Expression"; }

आउटपुट

This is Balanced Expression

  1. - C++ प्रोग्राम: स्टैक का उपयोग करके बैलेंस्ड पैरेंथेसिस की जांच करना

    यहां हम चर्चा करेंगे कि स्टैक का उपयोग करके बैलेंस्ड ब्रैकेट्स की जांच कैसे करें। हम न केवल ओपनिंग और क्लोजिंग ब्रैकेट्स की जांच करते हैं बल्कि ब्रैकेट्स के क्रम की भी जांच करते हैं। उदाहरण के लिए, हम कह सकते हैं कि एक्सप्रेशन [{} () {()}] सही है, लेकिन {[}] सही नहीं है। इनपुट: ब्रैकेट्स के साथ एक्

  1. - पायथन में अभिव्यक्ति में संतुलित पैरेंथेसिस की जांच O(1) स्पेस और O(N²) समय जटिलता के साथ

    मान लीजिए हमारे पास एक स्ट्रिंग str है जिसमें ये ब्रैकेट हैं: (, ), {, }, [ और ]। हमें जांचना है कि ब्रैकेट संतुलित हैं या नहीं। हम कह सकते हैं कि ब्रैकेट संतुलित हैं जब: ओपनिंग और क्लोजिंग ब्रैकेट का प्रकार समान हो। ब्रैकेट सही क्रम में बंद हों। इसलिए, यदि इनपुट {([])} है, तो आउटपुट True होगा। स

  1. - पायथन में बैलेंस्ड पैरेंथेसेस की जांच

    कई बार हमें यह पता लगाने की आवश्यकता होती है कि कोई एक्सप्रेशन इसमें मौजूद ब्रैकेट्स के संबंध में बैलेंस्ड है या नहीं। बैलेंस्ड से हमारा मतलब है कि प्रत्येक लेफ्ट ब्रैकेट के लिए एक संगत राइट ब्रैकेट है और ब्रैकेट्स का क्रम उचित रूप से व्यवस्थित है। प्रोग्राम या गणितीय एक्सप्रेशन लिखने में इसका महत्