zoukankan      html  css  js  c++  java
  • 堆栈应用括号匹配实验

    Description

    1、问题描述
    一个算术表达式中包括圆括号、方括号和花括号三种形式的括号
    编程实现判别表达式中括号是否正确匹配的算法

    2、算法
        顺序扫描算术表达式
        若算术表达式扫描完成,此时如果栈空,则正确返回(0);如果栈未空,说明左括号多于右括号,返回(-3)
        从算术表达式中取出一个字符,如果是左括号(‘(‘或‘[‘或 ‘{‘),则让该括号进栈(PUSH)
        如果是右括号(‘)‘或‘]‘或 ‘}‘):
    ⑴、如果栈为空,则说明右括号多于左括号,返回(-2)
    ⑵、如果栈不为空,则从栈顶弹出(POP)一个括号: 若括号匹配,则转1继续进行判断;否则,说明左右括号配对次序不正确,返回(-1)

    Input

    第一行:样本个数,假设为n。
    第二到n+1行,每一行是一个样本(算术表达式串),共n个测试样本。

    Output

    共有n行,每一行是一个测试结果,有四种结果:
    0:左右括号匹配正确
    -1:左右括号配对次序不正确
    -2:右括号多于左括号
    -3:左括号多于右括号

    Sample Input

    4 {[(1+2)*3-1] {[(1+2]*3)-1} {[(1+2)*3]-1} (1+2)*3)-1}

    Sample Output

    -3 -1 0 -2
  • 相关阅读:
    QT中的列表容器
    QT中的Buttons
    QT中的常用控件
    [机房测试]弟娃
    CF1580C Train Maintenance
    [机房测试]数据恢复
    Sentry 监控
    Sentry 监控
    Sentry 监控
    Sentry 后端监控
  • 原文地址:https://www.cnblogs.com/suiyun/p/2722895.html
Copyright © 2011-2022 走看看