zoukankan      html  css  js  c++  java
  • 括号配对问题(南阳2)

    //括号匹配的检验,运用栈的思想,构造栈不要想的太复杂。在此题中事实上也就是一个数组。 
    /*书上所说的可用“期待的急迫程度”,比如考虑下列括号序列:
        【(【】【】)】问括号是否匹配
        */ 
    #include<cstdio>
    #include<cstring>
    int main()
    {
        int top,i;
        char a[1010],b[1010];
        while(scanf("%s",a)!=EOF)
        {
            top=1;                         //top所指向b数组下标的下一位
            b[top++]=a[0];           
            for(i=1; i<strlen(a); i++)
            {
                if(a[i]=='('||a[i]=='[')  //此种情况,进栈 
                    b[top++]=a[i];
                else if(a[i]==')'&&b[top-1]=='(')  //出栈,事实上也就是对b数组的覆盖
                    top--;        
                else if(a[i]==']'&&b[top-1]=='[') 
                    top--; 
                else
                {                             //剩下的两种情况都要进栈 
                    b[top++]=a[i];                
                }
            }
            if(top==1)
                printf("括号匹配! ");
            else
                printf("括号不匹配!!! ");
        }
        return 0;

     
  • 相关阅读:
    获取成本
    销售订单跟踪成本
    装机
    这就是用战术上的勤奋掩盖战略上的懒惰
    CPA-计划(参考)
    大帝名言
    BZOJ 2100: [Usaco2010 Dec]Apple Delivery spfa
    BZOJ 2834: 回家的路 Dijkstra
    BZOJ 4070: [Apio2015]雅加达的摩天楼 根号分治+spfa
    BZOJ 4152: [AMPPZ2014]The Captain Dijkstra+贪心
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5111888.html
Copyright © 2011-2022 走看看