码迷,mamicode.com
首页 > 其他好文 > 详细

括号配对问题(南阳2)

时间:2014-08-23 02:21:09      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:io   for   ar   问题   amp   sp   c   har   return   

//括号匹配的检验,运用栈的思想,构造栈不要想的太复杂,在此题中其实也就是一个数组。 
/*书上所说的可用“期待的急迫程度”,例如考虑下列括号序列:
    【(【】【】)】问括号是否匹配
    */ 
#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("括号匹配!\n");
        else
            printf("括号不匹配!!!\n");
    }
    return 0;

 

括号配对问题(南阳2)

标签:io   for   ar   问题   amp   sp   c   har   return   

原文地址:http://blog.csdn.net/hdd871532887/article/details/38771437

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!