• 【TFLSnoi李志帅】第三篇文章


    满分代码,建议可以允许尽量不要直接copy,不喜勿喷嗷~

    1353:表达式括号匹配(stack)


    时间限制: 1000 ms         内存限制: 65536 KB
    提交数: 11556     通过数: 6141

    【题目描述】

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

    【输入】

    一行数据,即表达式。

    【输出】

    一行,即“YES” 或“NO”。

    【输入样例】

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

    【输出样例】

    YES

    【提示】

    【样例输入2】

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

    【样例输出2】

    NO



    ——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 char sta[300];//本题要用到栈
     4 int t=0;
     5 void push(char x)
     6 {
     7     sta[++t]=x;
     8 }
     9 void pop()
    10 {
    11     t--;
    12 }
    13 bool empty()
    14 {
    15     return t==0?1:0;//特殊声明:t==0?1:0 换一种写法是 if(t==0)return 1;else return 0;
    16 }
    17 int top()
    18 {
    19     return sta[t];
    20 }
    21 void clear()
    22 {
    23     t=0;
    24 }
    25 int size()
    26 {
    27     return t;
    28 }
    29 int main()
    30 {
    31     char a[300];
    32     int sum=0,flag=1;
    33     gets(a);
    34     sum=strlen(a); //获取字符串a的长度
    35     for(int i=0;i<sum;i++)
    36     {
    37         if(a[i]=='(')push(a[i]);
    38         if(a[i]==')'){
    39             if(top()=='(')//一一对应括号,不需要管其它数字运算符
    40             pop();
    41             else{
    42                 flag=0;//当括号无法一一对应时,直接跳出循环,输出“NO”,flag作为判断旗帜,int冒充bool类型(嘿嘿
    43                 break;
    44             }
    45         }
    46     }
    47     if(empty()==0)flag=0;//判断另一种特殊情况:左括号数量大于右括号;
    48     if(flag)cout<<"YES";
    49     else cout<<"NO";
    50     return 0;
    51 }
  • 相关阅读:
    浅谈左偏树入门
    【洛谷3768】简单的数学题(莫比乌斯反演+杜教筛)
    【51nod1743】雪之国度(最小生成树+倍增)
    【BZOJ1562】[NOI2009] 变换序列(匈牙利算法)
    【HHHOJ】NOIP模拟赛 玖 解题报告
    【BZOJ3930】[CQOI2015] 选数(容斥)
    【BZOJ1257】[CQOI2007] 余数之和(除法分块)
    杜教筛入门
    初学狄利克雷卷积
    关于积性函数的一些知识
  • 原文地址:https://www.cnblogs.com/TFLSc1908lzs/p/13530522.html
Copyright © 2020-2023  润新知