Write a program to test whether the pairs and orders of ““, “”, “(“, “)”, “[“, “]” in the expression string exp are correct.

Example:
Input:
given string = " [[[{}()]]]
Output:
Given string of brackets is balanced
Check for Balanced Brackets in an expression
1)Algorithm
- Make an empty character stack and traverse the characters in the string one by one.
- If an open bracket is encountered, it should be pushed into the stack.
- If a close bracket is encountered, match it with its open bracket counterpart at the top of the stack.
- If the match is successful, remove the character from the stack.
- If the match is a failure, RETURN FALSE.
- Return TRUE if the stack is empty; otherwise, return FALSE.
2)Check Balanced parentheses
Below is the implementation:
#include <bits/stdc++.h>
using namespace std;
// function which checkOpen brackets
bool checkOpenBracket(char character,
map<char, char> bracketMap)
{
map<char, char>::iterator itr = bracketMap.begin();
// Traverse the bracket map till end of it
while (
itr
!= bracketMap.end()) { // if the value of the given
// key is equal to given
// character then return true
if (itr->second == character) {
return true;
}
// increment the iterator to next key
itr++;
}
return false;
}
// function which checks the balanced bracket
bool checkBalancedBracket(string str)
{ // initializing a stack which stores the characters
stack<char> charstack;
// initializing a map which stores the open and closed
// brackets and parenthesis
map<char, char> parantheses_map;
// initalizing the map with open and closed bracket
// characters
parantheses_map['}'] = '{';
parantheses_map[')'] = '(';
parantheses_map[']'] = '[';
// Traverse the string
for (int i = 0; i < str.size(); i++) {
// checking if it is open bracket
if (checkOpenBracket(str[i], parantheses_map))
charstack.push(str[i]);
if (parantheses_map.find(str[i])
!= parantheses_map.end()) {
if (charstack.empty())
// Return false if the character stack is empty
return false;
if (charstack.top()
!= parantheses_map[str[i]]) {
return false;
}
else
charstack.pop();
}
}
if (charstack.size() > 0)
return false;
else
return true;
}
int main()
{ // passing brackets string to checkBalancedBracket
// function
if (checkBalancedBracket("{{[[]]()}}"))
cout << "Given string of brackets is balanced"
<< endl;
else
cout << "Given string og brackets is not balanced"
<< endl;
return 0;
}
Output:
Given string of brackets is balanced
Related Programs:
- how to add an element in vector using vectorpush_back
- converting a string to upper lower case in cpp using stl boost library
- python program to print numbers in a range 1upper without using any loops or by using recursion
- how to append text or lines to a file in python
- python how to find all indexes of an item in a list
- python how to check if an item exists in list
- python how to replace single or multiple characters in a string