38.4k views
3 votes
Write a function to check for balancing { and } in C programming language. (Assume that the entire program to be checked is given as a null-terminated string).

User AshMan
by
7.2k points

1 Answer

3 votes

Answer:

Balanced

Step-by-step explanation:

// CPP program to check for balanced parenthesis.

#include<bits/stdc++.h>

using namespace std;

// function to check if paranthesis are balanced

bool areParanthesisBalanced(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=='':

// 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 program to test above function

int main()

{

string expr = "{()}[]";

if (areParanthesisBalanced(expr))

cout << "Balanced";

else

cout << "Not Balanced";

return 0;

}

User Oleg Sobolev
by
5.8k points