chore(CPlusPlus): add balanced parenthesis problem (#930)
parent
35c870d05d
commit
1cc547fd8b
|
@ -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
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue