E-栈--括号匹配

来源:互联网 发布:淘宝上哪家店牛仔裤好 编辑:程序博客网 时间:2024/06/05 23:42

1

#include<stack>#include<string.h>#include<stdio.h>using namespace std;char s[2000];int main(){    while(gets(s))    {        stack<char >x;        int len=strlen(s);        int z=0;        for(int i=0; i<len ; i++)        {            if(s[i]=='('||s[i]=='['||s[i]=='{')                x.push(s[i]);            if(s[i]==')'||s[i]==']'||s[i]=='}')            {                if (s[i] == '}'&&!x.empty()&&x.top() == '{')x.pop();                else if (s[i] == ')'&&!x.empty()&&x.top() == '(')x.pop();                else if (s[i] == ']'&&!x.empty()&&x.top() == '[')x.pop();                else                {                    z++;                    break;                }            }        }        if(z==0&&x.empty())printf("yes\n");        else printf("no\n");    }}

2

//hrbust1054#include <stdio.h>#include<algorithm>#include<cstring>#include<stack>#include<iostream>using namespace std;int main(){    char c[1000];    int N,i,d=1;    scanf("%d",&N);    while(N--)    {        scanf("%s",&c);        int str=strlen(c);        stack<char> st;        for(i=0;i<str;i++)        {            if(c[i]=='('||c[i]=='{'||c[i]=='[')                            st.push(c[i]);            else if(c[i]==')'&&!st.empty()&&st.top()=='(')                            st.pop();            else if(c[i]==')'&&!st.empty()&&st.top()!='(')                            d=0;            else if(c[i]==')'&&st.empty())                            d=0;            else if(c[i]==']'&&!st.empty()&&st.top()=='[')                            st.pop();            else if(c[i]==']'&&!st.empty()&&st.top()!='[')                            d=0;            else if(c[i]==']'&&st.empty())                            d=0;            else if(c[i]=='}'&&!st.empty()&&st.top()=='{')                            st.pop();            else if(c[i]=='}'&&!st.empty()&&st.top()!='{')                            d=0;            else if(c[i]=='}'&&st.empty())                            d=0;         }         if(!st.empty()||d==0)               printf("Invalid\n");         else               printf("Valid\n");         d=1;      }    return 0;}
1 0
原创粉丝点击