数据结构 - 栈 - 括号匹配
用栈来实现括号匹配。
括号匹配
假设一个算术表达式中包含圆括号、方括号两种类型的括号,试编写一个判断表达式中括号是否匹配的程序,匹配返回
Match succeed!
,否则返回Match false!
。
输入格式
包含圆括号、方括号两种类型括号的算术表达式。
输出格式
-
匹配输出
Match succeed!
。 -
不匹配输出
Match false!
。
输入输出样例
样例 1
输入
[1+2*(3+4*(5+6))]
输出
Match succeed!
样例 2
输入
(1+2)*(1+2*[(1+2)+3)
输出
Match false!
注意输入输出最后都以换行符 \n
结尾。
题解
用 中的 实现括号匹配。熟悉 的使用。
#include <cstdio>
#include <cstdlib>
#include <stack>
using namespace std;
int main()
{
char ch;
stack<char> s;
while ((ch = getchar()) && ch != '\n') {
if (ch == '[' || ch == '(') {
s.push(ch);
}
else if (ch == ']') {
if (s.empty()) {
s.push(ch); break;
}
else {
if (s.top() == '[') s.pop();
else break;
}
}
else if (ch == ')') {
if (s.empty()) {
s.push(ch); break;
}
else {
if (s.top() == '(') s.pop();
else break;
}
}
}
if (s.empty()) printf("Match succeed!\n");
else printf("Match false!\n");
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现