समस्या कथन
कोष्ठक की एक स्ट्रिंग को देखते हुए। यह कंटेनर खोलने वाले कोष्ठक '(' या समापन कोष्ठक ')' कर सकता है। परिणामी कोष्ठक स्ट्रिंग को मान्य बनाने के लिए हमें कोष्ठकों की न्यूनतम संख्या ज्ञात करनी होगी।
उदाहरण
अगर str ="((()" तो हमें स्ट्रिंग के अंत में 2 क्लोजिंग कोष्ठक यानी '))' की आवश्यकता है
एल्गोरिदम
- शुरुआती कोष्ठकों की गणना करें
- समापन कोष्ठकों की गणना करें
- आवश्यक कोष्ठक =abs(खोलने वाले कोष्ठकों की संख्या – समापन कोष्ठकों की संख्या)
उदाहरण
#include <iostream> #include <string> #include <cmath> using namespace std; int requiredParentheses(string str) { int openingParentheses = 0, closingParentheses = 0; for (int i = 0; i < str.length(); ++i) { if (str[i] == '(') { ++openingParentheses; } else if (str[i] == ')') { ++closingParentheses; } } return abs(openingParentheses - closingParentheses); } int main() { string str = "((()"; cout << "Required parentheses = " << requiredParentheses(str) << endl; return 0; }
जब आप उपरोक्त प्रोग्राम को संकलित और निष्पादित करते हैं। यह निम्नलिखित आउटपुट उत्पन्न करता है -
Required parentheses = 2