chore(CPlusPlus): add balanced parenthesis problem (#930)

pull/1027/head
Virendra Carpenter 2022-10-13 18:12:33 +05:30 committed by GitHub
parent 35c870d05d
commit 1cc547fd8b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 71 additions and 1 deletions

View File

@ -0,0 +1,70 @@
#include <bits/stdc++.h>
using namespace std;
bool areBracketsBalanced (string expr)
{
stack < char >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 ']': x = s.top ();
s.pop ();
if (x == '(' || x == '{')
return false;
break;
}
}
return (s.empty ());
}
// Driver code
int main ()
{
string expr = "{()}[]";
// Function call
if (areBracketsBalanced (expr))
cout << "Balanced";
else
cout << "Not Balanced";
return 0;
}
// Output:-
// Enter the brackets to check if its balanced or not : [{}]
// Balanced
// Enter the brackets to check if its balanced or not : {]
Not Balanced

View File

@ -31,7 +31,7 @@
- [Next permutation](Arrays/next-permutation.cpp)
- [Maximum Minimum Average of numbers](Arrays/max-min-avg.cpp)
- [Sparse Matrix](Arrays/sparse_matrix.cpp)
- [Balanced Parenthesis](Arrays/balanced-parenthesis.cpp)
## Dynamic-Programming