इस ट्यूटोरियल में, हम कोष्ठक को संतुलित करने के लिए लागत खोजने के लिए एक कार्यक्रम पर चर्चा करेंगे।
इसके लिए हमें कोष्ठकों का एक क्रम प्रदान किया जाएगा। हमारा काम समीकरण में उन कोष्ठकों की स्थिति को एक से बदलकर संतुलित करना है और यदि उन्हें संतुलित करना संभव नहीं है तो -1 प्रिंट करना है।
उदाहरण
#include <bits/stdc++.h>
using namespace std;
int costToBalance(string s) {
if (s.length() == 0)
cout << 0 << endl;
//storing count of opening and
//closing parentheses
int ans = 0;
int o = 0, c = 0;
for (int i = 0; i < s.length(); i++) {
if (s[i] == '(')
o++;
if (s[i] == ')')
c++;
}
if (o != c)
return -1;
int a[s.size()];
if (s[0] == '(')
a[0] = 1;
else
a[0] = -1;
if (a[0] < 0)
ans += abs(a[0]);
for (int i = 1; i < s.length(); i++) {
if (s[i] == '(')
a[i] = a[i - 1] + 1;
else
a[i] = a[i - 1] - 1;
if (a[i] < 0)
ans += abs(a[i]);
}
return ans;
}
int main(){
string s;
s = ")))(((";
cout << costToBalance(s) << endl;
s = "))((";
cout << costToBalance(s) << endl;
return 0;
} आउटपुट
9 4