मान लीजिए हमारे पास एक एक्सप्रेशन exp है, और हमें जांचना है कि exp के चारों ओर डुप्लिकेट पैरेंथेसिस का सेट है या नहीं। एक एक्सप्रेशन में डुप्लिकेट पैरेंथेसिस होंगे यदि एक सब-एक्सप्रेशन एक से अधिक पैरेंथेसिस सेट से घिरा होगा। उदाहरण के लिए, यदि एक्सप्रेशन है जैसे -
(5+((7-3)))
यहां सब-एक्सप्रेशन (7 - 3) दो पैरेंथेसिस जोड़ी से घिरा हुआ है, तो ये डुप्लिकेट पैरेंथेसिस हैं।
इस समस्या को हल करने के लिए, हम स्टैक्स का उपयोग करेंगे। हम exp में प्रत्येक कैरेक्टर के माध्यम से इटरेट करेंगे, और यदि कैरेक्टर ओपनिंग पैरेंथेसिस '(', या कोई ऑपरेटर या ऑपरेंड है, तो इसे स्टैक में पुश करें। जब कैरेक्टर क्लोजिंग पैरेंथेसिस है, तो स्टैक से कैरेक्टर्स को बार-बार पॉप करें जब तक कि मिलान करने वाला ओपनिंग पैरेंथेसिस न मिल जाए, और एक काउंटर का उपयोग किया जाता है, जिसका मान ओपनिंग और क्लोजिंग पैरेंथेसिस जोड़ी के बीच मिले प्रत्येक कैरेक्टर के लिए बढ़ाया जाएगा। जिसका मान काउंटर के मान के बराबर है, 1 से कम है, तो डुप्लिकेट पैरेंथेसिस की जोड़ी मिली है, अन्यथा नहीं मिली।
उदाहरण
#include#include using namespace std; bool hasDuplicateParentheses(string str) { stack stk; for (int i = 0; i आउटपुट
Duplicate parentheses has Found