zoukankan      html  css  js  c++  java
  • 【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 }
  • 相关阅读:
    apache2+django+virtualenv 服务器部署实战
    从 relu 的多种实现来看 torch.nn 与 torch.nn.functional 的区别与联系
    Causal Corpus 事件因果关系语料统计
    Event StoryLine Corpus 论文阅读
    哈工大计算机网络Week2-网络应用数据交换
    哈工大计算机网络Week3-传输层
    哈工大计算机网络Week1-网络应用
    哈工大计算机网络Week0-概述
    python爬虫入门
    对scanner.close方法的误解以及无法补救的错误
  • 原文地址:https://www.cnblogs.com/TFLSc1908lzs/p/13530522.html
Copyright © 2011-2022 走看看