#include <iostream>
#include <stack>
bool areBracketsBalanced(const std::string& expression) {
std::stack<char> brackets;
for (char bracket : expression) {
if (bracket == '(' || bracket == '[' || bracket == '{') {
brackets.push(bracket);
} else if (bracket == ')' || bracket == ']' || bracket == '}') {
if (brackets.empty()) {
return false;
} else if ((bracket == ')' && brackets.top() != '(') ||
(bracket == ']' && brackets.top() != '[') ||
(bracket == '}' && brackets.top() != '{')) {
return false;
}
brackets.pop();
}
}
return brackets.empty();
}
int main() {
std::string expression;
std::cout << "Enter an expression with brackets: ";
std::cin >> expression;
if (areBracketsBalanced(expression)) {
std::cout << "Brackets are balanced." << std::endl;
} else {
std::cout << "Brackets are not balanced." << std::endl;
}
return 0;
}