TB椰程 TypeBuddy 打字搭子

栈 · 括号匹配

CSP-J · 编程模板 · 片段 · cpp · 难度 2/5 · 共 408 字

左括号入栈,右括号出栈配对

  • 栈
  • 括号匹配

前置内容

正文

// ── 栈:括号匹配 ──
// 后进先出(LIFO)
// 最后放入的左括号最先配对
char st[100005];
int top = 0, ok = 1;
// top = 当前元素个数
for (int i = 0; s[i] != '\0'; i++) {
    if (s[i] == '(') {
        // 左括号:入栈等待配对
        st[top++] = s[i];
    } else if (top > 0) {
        // 右括号:弹栈配对
        top--;
    } else {
        // 没得配还来右括号 → 失败
        ok = 0;
    }
}
// 扫完后栈必须为空:
// 像 "((" 剩一半也不算匹配
printf("%s", ok && top == 0 ? "YES" : "NO");

CSP-J · 编程模板的其它内容

打字首页 · 词库画廊 · 编程打字 · 指法入门 · 天梯榜 · 数据分析 · 班级课堂 · 关于我们
椰程 TypeBuddy 打字搭子 —— 键盘指法练习 · 单词记忆 · 班级课堂 · 在线 PK