zoukankan      html  css  js  c++  java
  • 1353:表达式括号匹配(stack)

    【题目描述】

    假设一个表达式有英文字母(小写)、运算符(+/+,—,∗,/)和左右小(圆)括号构成,以“@@”作为表达式的结束符。请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则返回“YESYES”;否则返回“NONO”。表达式长度小于255255,左圆括号少于2020个。

    【输入】

    一行数据,即表达式。

    【输出】

    一行,即“YESYES” 或“NONO”。

    【输入样例】

    2*(x+y)/(1-x)@

    【输出样例】

    YES

    【提示】

    【样例输入2】

    (25+x)*(a*(a+b+b)@

    【样例输出2】

    NO

    #include <iostream>
    using namespace std;
    
    int main()
    {
        char ch = 0;
        int cnt = 0;
        while (ch != '@') {
            // cin >> ch; // none space
            ch = cin.get();
            switch (ch) {
                case '(':
                    cnt++;
                    break;
                case ')':
                    cnt--;
                    if (cnt < 0) {
                        ch = '@';
                    }
                    break;
                case '@':
                    break;
            }
        }
        if (cnt == 0) {
            cout << "YES";
        } else {
            cout << "NO";
        }
        return 0;
    }
    

      

  • 相关阅读:
    redis基本介绍搭建篇
    Percona XtraDB Cluster集群
    path模块
    vue相关
    Vue首页加载过慢 解决方案
    从用户输入url到页面最后呈现 发生了些什么?
    cookie
    javascript中怎么判断对象{}为空
    jquery之stop()的用法
    跨域
  • 原文地址:https://www.cnblogs.com/gaojs/p/15584372.html
Copyright © 2011-2022 走看看