1 条题解

  • 0
    @ 2025-4-7 21:19:28

    C :

    #include <stdio.h>
    
    int main()
    {
    	int ncase;
    	scanf("%d",&ncase);
    	getchar();
    	while(ncase--)
    	{
    		char ch;
    		int flag = 1;
    		char a[500];
    		int i = -1;
    		while(scanf("%c",&ch)!=EOF && ch != '\n')
    		{
    			if(ch == ')' ||ch == ']' || ch == '}')
    			{
    				if(i==-1)
    				{
    					flag = 0;
    				}
    				else 
    				{
    					if((a[i] == '(' && ch == ')') ||  (a[i] == '[' && ch == ']') ||  (a[i] == '{' && ch == '}') )
    					{
    						i--;
    					}
    				}
    			}
    			else if(ch == '(' || ch == '[' || ch == '{')
    			{
    				i++;
    				a[i] = ch;
    
    			}
    			else 
    			{
    				continue;
    			}
    		}
    		if(flag == 0 || i != -1)
    		{
    			printf("no\n");
    		}
    		else 
    		{
    			printf("yes\n");
    		}
    
    
    	}
    
    	return 0;
    }
    

    C++ :

    #include<stdio.h>
    
    char st[1000000];
    char str[1000000];
    
    int main() {
    	int N,i,sp;
    	for(scanf("%d",&N);N--;) {
    		scanf("%s",str);
    		for(i=sp=0;str[i];i++) {
    			if (str[i]=='(' || str[i]=='[' || str[i]=='{') st[sp++]=str[i];
    			else if (str[i]==')') {
    				if (!sp || st[sp-1]!='(') break;
    				--sp;
    			} else if (str[i]==']') {
    				if (!sp || st[sp-1]!='[') break;
    				--sp;
    			} else if (str[i]=='}') {
    				if (!sp || st[sp-1]!='{') break;
    				--sp;
    			}
    		}
    		if (!str[i] && !sp) puts("yes"); else puts("no");
    	}
    	return 0;
    }
    
    
    • 1

    信息

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