ACM5

括号配对问题

时间限制:3000 ms  |  内存限制:65535 KB

难度:3

描述 现在,有一行括号序列,请你检查这行括号是否配对。

输入第一行输入一个数N(0

[(])

(])

([[]()])

样例输出No

No

Yes


#include 

#include 

#include 

#include 

using namespace std; 

int main() 

    char s[10001]; 

    int t; 

    scanf("%d",&t); 

    while(t--) 

    { 

        scanf("%s",s); 

        int len=strlen(s); 

        if(len%2!=0) 

            printf("No\n"); 

        else 

        { 

          stack q;

for(int i=0;i

          { 

            if(q.empty()) 

                q.push(s[i]); 

            else if(s[i]==']'&&q.top()=='[') 

            { 

                q.pop(); 

                }   

            else if(s[i]==')'&&q.top()=='(') 

            { 

                    q.pop(); 

            } 

            else 

                q.push(s[i]); 

        } 

  if(q.empty()) 

              printf("Yes\n"); 

          else 

              printf("No\n"); 

        } 

    } 

    return 0; 



#include

#include

#include

using namespace std;

int main()

{

  int n;

  cin>>n;

  while(n--)

  { 

      vector vec;

      string ch;

      vec.push_back(' ');

      cin>>ch;

for(int i=0;i

      {

    vec.push_back(ch[i]);

        if( vec.back()-1 == *(vec.end()-2) || vec.back()-2 == *(vec.end()-2))

        {

          vec.pop_back();

            vec.pop_back();

        }

      }

      if(vec.size()==1)

      cout<<"Yes"<

      else

      cout<<"No"<

    }

    return 0;

}

你可能感兴趣的:(ACM5)