एक स्ट्रिंग वर्णों की एक सरणी है। इस समस्या में, हमें एक स्ट्रिंग दी जाती है जिसमें खोलने और बंद करने वाले कोष्ठक होते हैं। और हम स्ट्रिंग से अतिरिक्त कोष्ठक हटाकर इस स्ट्रिंग को संतुलित करेंगे।
आइए एक उदाहरण लेते हैं,
Input : “)Tutor)ials(p(oin)t(...)” Output : “Tutorials(p(oin)t(...))”
इस समस्या को हल करने के लिए, हम स्ट्रिंग के माध्यम से पार करेंगे और मिलान करने वाले ब्रैकेट की जांच करेंगे। बेजोड़ कोष्ठकों के लिए बंद कोष्ठकों को हटा दें।
एल्गोरिदम
Step 1 : Traverse the string from left to right. Step 2 : For opening bracket ‘(’ , print it and increase the count. Step 3 : For occurence of closing bracket ‘)’ , print it only if count is greater than 0 and decrease the count. Step 4 : Print all characters other than brackets are to be printed in the array. Step 5 : In the last add closing brackets ‘)’ , to make the count 0 by decrementing count with every bracket.
उदाहरण
#include<iostream> #include<string.h> using namespace std; void balancedbrackets(string str){ int count = 0, i; int n = str.length(); for (i = 0; i < n; i++) { if (str[i] == '(') { cout << str[i]; count++; } else if (str[i] == ')' && count != 0) { cout << str[i]; count--; } else if (str[i] != ')') cout << str[i]; } if (count != 0) for (i = 0; i < count; i++) cout << ")"; } int main() { string str = ")Tutor)ials(p(oin)t(...)"; cout<<"Original string : "<<str; cout<<"\nBalanced string : "; balancedbrackets(str); return 0; }
आउटपुट
Original string : )Tutor)ials(p(oin)t(...) Balanced string : Tutorials(p(oin)t(...))