समस्या विवरण
एक स्ट्रिंग दी गई है जिसमें खोलने और बंद करने वाले ब्रैकेट हैं। अतिरिक्त ब्रैकेट हटाकर स्ट्रिंग को संतुलित करें।
उदाहरण: इनपुट: ")Tutor)ials(p(oin)t(...)" → आउटपुट: "Tutorials(p(oin)t(...))"
एल्गोरिदम
- बाएं से दाएं ट्रैवर्स करें
- '(' मिले तो प्रिंट करें और काउंट बढ़ाएं
- ')' मिले और काउंट > 0 हो तो प्रिंट करें और काउंट घटाएं
- अन्य वर्ण सीधे प्रिंट करें
- अंत में शेष काउंट के बराबर ')' जोड़ें
उदाहरण कोड
#include <iostream>
#include <string>
using namespace std;
void balancedBrackets(string str) {
int count = 0;
int n = str.length();
for (int 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 (int 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(...))