#include #include using namespace std;

bool isMatching(char c1, char c2) { if (c1 == '(' && c2 == ')') { return true; } if (c1 == '[' && c2 == ']') { return true; } return false; }

bool isBalanced(string expr) { stack s; for (int i = 0; i < expr.length(); i++) { if (expr[i] == '(' || expr[i] == '[') { s.push(expr[i]); } else if (expr[i] == ')' || expr[i] == ']') { if (s.empty() || !isMatching(s.top(), expr[i])) { return false; } s.pop(); } } return s.empty(); }

int main() { string expr; cin >> expr; if (isBalanced(expr)) { cout << 'OK' << endl; } else { cout << 'Wrong' << endl; } return 0; }

C++ 括号匹配算法实现 - 检验表达式中的括号是否匹配

原文地址: https://www.cveoy.top/t/topic/bOcn 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录