zoukankan      html  css  js  c++  java
  • UVa 673 Parentheses Balance【栈】

    题意:输入一个包含"()"和"[]"的序列,判断是否合法

    用栈来模拟,遇到"(",“[”就入栈,遇到')',']'就取出栈顶元素看是否匹配,如果不匹配,则不合法

    还有注意一下每次取出栈顶元素的时候判断栈是否为空,如果为空就要跳出循环

    注意空串也是合法的串

     1 #include<iostream>  
     2 #include<cstdio>  
     3 #include<cstring> 
     4 #include <cmath> 
     5 #include<stack>
     6 #include<vector>
     7 #include<map> 
     8 #include<set>
     9 #include<queue> 
    10 #include<algorithm>  
    11 using namespace std;
    12 
    13 typedef long long LL;
    14 const int INF = (1<<30)-1;
    15 const int mod=1000000007;
    16 const int maxn=100005;
    17 char t[maxn];
    18 
    19 int main(){
    20     int ncase;
    21     scanf("%d",&ncase);
    22     getchar();
    23     while(ncase--){
    24         stack<char> s;
    25         gets(t);
    26         int len=strlen(t);
    27         int flag=1;
    28         for(int i=0;i<len;i++){
    29             if(t[i]=='('||t[i]=='[') s.push(t[i]);
    30             
    31         //    printf("s.size()=%d
    ",s.size());
    32             else  if(t[i]==')'){
    33                 if(s.size()==0) {
    34                     flag=0;
    35                     break;
    36                 }
    37                 char ch=s.top();s.pop();
    38                 if(ch!='(') flag=0;            
    39             }
    40             else{
    41                 if(s.size()==0){
    42                     flag=0;
    43                     break;
    44                 }
    45                 char ch=s.top();s.pop();
    46                 if(ch!='[') flag=0;
    47             }
    48             if(flag==0) break;
    49         }
    50         
    51         if(s.size()!=0) flag=0;
    52         if(flag) printf("Yes
    ");
    53         else printf("No
    ");        
    54     }
    55     return 0;
    56 }
    View Code
  • 相关阅读:
    JDBC
    Ajax:一种不用刷新整个页面便可与服务器通讯的办法
    Maven——自动化构建工具
    SSM整合
    MyBatis框架
    SpringMVC框架、Spring boot框架、SSM區別
    Spring开源框架
    切入点表达式
    面向切面编程之cglib代理方式
    动态JDK代理方式-实现类增强
  • 原文地址:https://www.cnblogs.com/wuyuewoniu/p/4441645.html
Copyright © 2011-2022 走看看