From b77216e68485e0e3a9729c30728c06e490755976 Mon Sep 17 00:00:00 2001 From: Deepak Yadav <31646033+deepakmca17du@users.noreply.github.com> Date: Sun, 24 Oct 2021 12:36:09 +0530 Subject: [PATCH] Create balancedParenthesis --- balancedParenthesis | 73 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 balancedParenthesis diff --git a/balancedParenthesis b/balancedParenthesis new file mode 100644 index 0000000..ab8dcdf --- /dev/null +++ b/balancedParenthesis @@ -0,0 +1,73 @@ +// CPP program to check for balanced brackets. +#include +using namespace std; + +// function to check if brackets are balanced +bool areBracketsBalanced(string expr) +{ + stack s; + char x; + + // Traversing the Expression + for (int i = 0; i < expr.length(); i++) + { + if (expr[i] == '(' || expr[i] == '[' + || expr[i] == '{') + { + // Push the element in the stack + s.push(expr[i]); + continue; + } + + // IF current current character is not opening + // bracket, then it must be closing. So stack + // cannot be empty at this point. + if (s.empty()) + return false; + + switch (expr[i]) { + case ')': + + // Store the top element in a + x = s.top(); + s.pop(); + if (x == '{' || x == '[') + return false; + break; + + case '}': + + // Store the top element in b + x = s.top(); + s.pop(); + if (x == '(' || x == '[') + return false; + break; + + case ']': + + // Store the top element in c + x = s.top(); + s.pop(); + if (x == '(' || x == '{') + return false; + break; + } + } + + // Check Empty Stack + return (s.empty()); +} + +// Driver code +int main() +{ + string expr = "{()}[]"; + + // Function call + if (areBracketsBalanced(expr)) + cout << "Balanced"; + else + cout << "Not Balanced"; + return 0; +}