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)
|
- [Next permutation](Arrays/next-permutation.cpp)
|
||||||
- [Maximum Minimum Average of numbers](Arrays/max-min-avg.cpp)
|
- [Maximum Minimum Average of numbers](Arrays/max-min-avg.cpp)
|
||||||
- [Sparse Matrix](Arrays/sparse_matrix.cpp)
|
- [Sparse Matrix](Arrays/sparse_matrix.cpp)
|
||||||
|
- [Balanced Parenthesis](Arrays/balanced-parenthesis.cpp)
|
||||||
|
|
||||||
|
|
||||||
## Dynamic-Programming
|
## Dynamic-Programming
|
||||||
|
|
Loading…
Reference in New Issue