1 条题解

  • 0
    @ 2025-4-12 22:03:04

    C :

    #include<stdio.h>
    #include<malloc.h>
    #include<string.h>
    #define STACK_SIZE 10005
    typedef struct {
       char ch[10005];
      int top;
     }Sq;
    Sq *Init(){
        Sq *s;
        if(s=(Sq*)malloc(sizeof(Sq)))
        {    s->top=0;
            return s;}
        else return NULL;
    }
    void Clear(Sq *s){
       s->top=0;
    }
    void  Push(Sq *s,char e){
        if(s->top==STACK_SIZE) return ;
          else {s->ch[s->top]=e;
          s->top++;}
        }
    void Pop(Sq *s)
    {
      if (s->top==0)
        return ;
      s->top--;
    
    }
    char c[10005],p;
    int main(){
        Sq *sq;
        sq=Init();
        int n,l,i;
        scanf("%d",&n);
        while(n--){
            scanf("%s",c);
            l=strlen(c);
            Push(sq,c[0]);
            for(i=1;i<l;i++){
                  if((c[i]==']'&&sq->ch[sq->top-1]=='[')||(c[i]==')'&&sq->ch[sq->top-1]=='('))Pop(sq);
                  else Push(sq,c[i]);
                }
            if(sq->top==0)printf("Yes\n");
             else printf("No\n");
           Clear(sq);
            }
        return 0;
    }
    
    

    C++ :

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    char s[10000+5],strak[10000+5];
    int main(){
        int n;
        scanf("%d",&n);
        while(n--){
            int j=0,flag=1;
            scanf("%s",s);
            for(int i=0;i<strlen(s);i++){
                if(s[i]=='['){
                    strak[j++]=s[i];
                }else if(s[i]=='('){
                    strak[j++]=s[i];
                }else if(s[i]==']'){
                    if(strak[j-1]=='[')
                        j=j-1;
                    else{
                        flag=0;
                    }
                }else if(s[i]==')'){
                    if(strak[j-1]=='(')
                        j=j-1;
                    else{
                        flag=0;
                }
    
            }
            if(!flag)
                break;
        }
        if(flag&& j==0)
            printf("Yes\n");
        else
            printf("No\n");
    
    }
    }
    
    
    • 1

    信息

    ID
    2642
    时间
    3000ms
    内存
    256MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者