NYOJ 2 括号配对问题

来源:互联网 发布:北京域名快速备案 编辑:程序博客网 时间:2024/04/28 00:49

题目来源:点击打开链接

题目信息:栈的简单应用,使用STL栈的头文件做的,遇到左括号入栈,遇到右括号,若栈顶元素是与之配对的左括号,则栈顶元素出栈,否则入栈。

                  最后,如果栈为空,说明括号全部配对,输出“Yes\n”.否则配对不成功,输出"No\n".(注意大小写)。

源代码:

#include<stdio.h>#include<string.h>#include<stack>using namespace std;int main(){    int n;    char a[10005],b[10005];    scanf("%d",&n);    while(n--)    {        stack<char>S;        scanf("%s",a);        int i,l;        l=strlen(a);        for(i=0;i<l;i++)        {            if(a[i]=='['||a[i]=='(')                S.push(a[i]);   //进栈            else if(a[i]==']'||a[i]==')')            {                if(!S.empty())                {                    if((a[i]==']'&&S.top()=='[')||(a[i]==')'&&S.top()=='('))                        S.pop();                    else                        S.push(a[i]);                }                else                    S.push(a[i]);            }        }        if(S.empty())            printf("Yes\n");        else            printf("No\n");    }    return 0;}


0 0
原创粉丝点击