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;

     
  • 相关阅读:
    在国外搭建 Web 服务器
    双向循环链表的实现
    使用C/C++扩展Python
    用C语音编写python的扩展模块,也就是python调c库
    《扩展和嵌入python解释器》1.4 模块方法表和初始化函数
    linux如何使用NFS挂载文件系统
    linux用户管理
    eims系统新增一级目录菜单流程
    Hadoop参考学习
    Got error: 1045:
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5111888.html
Copyright © 2011-2022 走看看