1 条题解

  • 0
    @ 2024-12-24 9:54:34

    C :

    #include <stdio.h>  
    #include <stdlib.h>  
    #include <string.h>  
      
    struct bracket  
    {  
        char data[101];  
        int top;  
    };  
      
    void main()  
    {  
        char str[101],flag[101];  
        int i,len;  
        struct bracket *p, *q;  
      
        while(scanf("%s",str) != EOF)  
        {   
            p=(struct bracket *)malloc(sizeof(struct bracket));  
            q=(struct bracket *)malloc(sizeof(struct bracket));  
            p->top = q->top = 0;  
            len = strlen(str);  
            for(i=0;i<len;i++)  
            {  
                switch(str[i])  
                {  
                    case '(' :  
                        p->data[p->top++] = str[i];  
                        flag[i]=' ';  
                        break;  
                    case ')' :  
                        if(p->top>0)  
                        {  
                            flag[i]=' ';  
                            p->top-=1;  
                        }else  
                        {  
                            flag[i]='?';  
                        }  
                        break;  
                    default :  
                        flag[i]=' ';  
                        break;  
                }  
            }  
            for(i=len-1;i>=0;i--)  
            {  
                switch(str[i])  
                {  
                    case ')' :  
                        q->data[q->top++] =str[i];  
                        break;  
                    case '(' :  
                        if(q->top>0)  
                        {  
                            q->top-=1;  
                        }else  
                        {  
                            flag[i]='$';  
                        }  
                        break;  
                    default :  
                        break;  
                }  
            }    
    		for(i=0;i<len;i++)
    			printf("%c",str[i]);
    		printf("\n");
    		for(i=0;i<len;i++)
    			printf("%c",flag[i]);
    		printf("\n"); 
        }    
    }  
    

    Java :

    import java.util.*;
    
    public class Main {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Scanner sc = new Scanner(System.in);
    		while(sc.hasNextLine())
    		{
    			String t1=sc.nextLine();
    			StringBuffer sb=new StringBuffer(t1);
    			StringBuffer t2=new StringBuffer(200);
    			for(int i=0;i<t1.length();i++)
    			{
    				if(t1.charAt(i)=='(')
    					t2.append('(');
    				else if(t1.charAt(i)==')')
    				{
    					if(t2.length()>0)
    						t2.deleteCharAt(t2.length()-1);
    					else
    						sb.setCharAt(i, '?');
    				}
    			}
    			t2.setLength(0);
    			for(int i=t1.length()-1;i>=0;i--)
    			{
    				if(t1.charAt(i)==')')
    					t2.append(')');
    				else if(t1.charAt(i)=='(')
    				{
    					if(t2.length()>0)
    						t2.deleteCharAt(t2.length()-1);
    					else
    						sb.setCharAt(i, '$');
    				}
    			}
    			for(int i=0;i<sb.length();i++)
    			{
    				if(sb.charAt(i)!='?' && sb.charAt(i)!='$')
    					sb.setCharAt(i, ' ');
    			}
    			System.out.print(t1);
    			System.out.print('\n');
    			System.out.print(sb);
    			System.out.print('\n');
    		}
    	}
    }
    
    • 1

    信息

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