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

                    

    P1739 表达式括号匹配

    网站链接;https://www.luogu.com.cn/problem/P1739

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

    输入格式

    一行:表达式

    输出格式

    一行:“YES” 或“NO”

    输入输出样例

    输入 #1
    2*(x+y)/(1-x)@
    
    输出 #1
    YES
    输入 #2
    (25+x)*(a*(a+b+b)@
    
    输出 #2
    NO

    说明/提示

    表达式长度小于255,左圆括号少于20个

    AC代码1:

    #pragma GCC optimize(2)
    #include<bits/stdc++.h>
    using namespace std;
    inline int read() {int x=0,f=1;char c=getchar();while(c!='-'&&(c<'0'||c>'9'))c=getchar();if(c=='-')f=-1,c=getchar();while(c>='0'&&c<='9')x=x*10+c-'0',c=getchar();return f*x;}
    typedef unsigned long long ll;
    const int maxn = 1e6+10;
    char a[300];
    int main()
    {
        scanf("%s",a);
        int t=strlen(a);
        int j=0;
        int flag=0;
        for(int i=0;i<t;i++){
            if(a[i]=='('){
                j++;
            }
            else if(a[i]==')'){
                j--;
            }
            if(j<0){
                flag=1;
                break;
            }
        }
        if(flag==1||j!=0){
            printf("NO
    ");
        }
        else{
            printf("YES
    "); 
        }
        return 0;
    }
    View Code

    AC代码2:

  • 相关阅读:
    批处理操作
    注册表操作
    js 表格操作(兼容模式
    asp解码.net传参
    windows+nginx 查看并发链接数
    windows+nginx负载测试
    开发cocos2dx真机插件遇到问题,以及心得
    react路由
    Redux实现原理解析及应用
    test
  • 原文地址:https://www.cnblogs.com/lipu123/p/12143845.html
Copyright © 2011-2022 走看看