从键盘输入一个表达式,判断括号是否匹配,并输出判断结果。表达式中可以包含有3种不同的括号{}、()、[]。用stack容器写
时间: 2024-04-11 22:26:55 浏览: 11
好的,我可以帮你编写一个用栈容器来判断括号是否匹配的程序。以下是示例代码:
```cpp
#include <iostream>
#include <stack>
#include <string>
bool isParenthesesMatched(const std::string& expression) {
std::stack<char> stack;
for (char c : expression) {
if (c == '(' || c == '{' || c == '[') {
stack.push(c);
} else if (c == ')' || c == '}' || c == ']') {
if (stack.empty()) {
return false;
}
char top = stack.top();
stack.pop();
if ((c == ')' && top != '(') || (c == '}' && top != '{') || (c == ']' && top != '[')) {
return false;
}
}
}
return stack.empty();
}
int main() {
std::string expression;
std::cout << "请输入一个表达式:";
std::cin >> expression;
bool isMatched = isParenthesesMatched(expression);
if (isMatched) {
std::cout << "括号匹配" << std::endl;
} else {
std::cout << "括号不匹配" << std::endl;
}
return 0;
}
```
你可以将上述代码保存为.cpp文件,然后使用C++编译器进行编译和运行。在程序运行时,你可以从键盘输入一个表达式,程序将判断括号是否匹配,并输出判断结果。
希望这个程序对你有帮助!如有任何疑问,请随时提问。