diff --git a/balanced_bracket.cpp b/balanced_bracket.cpp new file mode 100644 index 0000000..0bea916 --- /dev/null +++ b/balanced_bracket.cpp @@ -0,0 +1,43 @@ +#include +using namespace std; + +unordered_map sym = {{'(', -1}, {'{', -2}, {'[', -3}, {')', 1}, {'}', 2}, {']', 3}}; + +string brakcets(string str) +{ + char ch; + stack st; + if(sym[str[0]] > 0) + return "No"; + for (auto s : str) + { + if (sym[s] < 0) + st.push(s); + else + { + if (st.empty()) + return "No"; + ch = st.top(); + st.pop(); + if(sym[ch] + sym[s] != 0) + return "No"; + } + } + if(st.empty()) return "Yes"; + return "No"; +} + +int main() +{ + int t; + cout << "Enter number of cases\n"; + cin >> t; + string str; + while (t--) + { + cout << "Input brackets\n"; + cin >> str; + cout << brakcets(str) << endl; + } + return 0; +} \ No newline at end of file