1 条题解

  • 0
    @ 2025-4-12 21:43:15

    C :

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    
    
    
    int main()
    {
    	int n;
    	scanf("%d", &n);
    	int *flag = (int *)malloc(n*sizeof(int));
    	int i;
    	int j, k;
    	int len_a, len_b, len_c;
    	int site = 0; 
    	char a[200];
    	char b[200];
    	char c[400];
    	char *p;
    	char *q;
    	for(i = 0; i < n; i++)
    	{
    		site = 0;
    		flag[i] = 1;
    		scanf("%s", a);
    		scanf("%s", b);
    		scanf("%s", c);
    		len_a = strlen(a);
    		len_b = strlen(b);
    		len_c = strlen(c);
    		if(len_c != len_a + len_b)
    		{
    			flag[i] = 0;
    			continue;
    		}
    		p = a;
    		for(j = 0; j < len_a; j++, p++)
    		{
    			while(*p != *(c+site) && *(c+site) != '\0')
    			{
    				site++;
    			}
    			if(*(c+site) == '\0')
    			{
    				flag[i] = 0;
    				break;
    			}
    		}
    		p = b;
    		site = 0;
    		for(j = 0; j < len_b; j++, p++)
    		{
    			while(*p != *(c+site) && *(c+site) != '\0')
    			{
    				site++;
    			}
    			if(*(c+site) == '\0')
    			{
    				flag[i] = 0;
    				break;
    			}
    		}
    		
    		
    		
    		
    		
    		
    		
    		
    		
    		
    		
    		
    		
    		
    		
    		
    		
    	}
    	for(i = 0; i < n; i++)
    	{
    		if(flag[i])
    		{
    			printf("Case %d: yes\n", i+1);
    		}
    		else
    		{
    			printf("Case %d: no\n", i+1);
    		}
    	}
    	
    	
    	
    	
    	return 0;
    } 
    

    C++ :

    #include<iostream>
    #include<string>
    using namespace std;
    int main()
    {
    	int n,i,j,k1,k2;
    	char q1,q2;
    	cin>>n;
    	string word1[n],word2[n],word3[n];
    	string put[n];
    	for(i=0;i<n;i++)
    	    cin>>word1[i]>>word2[i]>>word3[i];
    	for(i=0;i<n;i++)
    	{
    		k1 = 0;
    		k2 = 0;
    		q1 = word1[i][0]; 
    		for(j=0;word3[i][j]!='\0';j++)
    		{
    			if(word3[i][j]==q1)
    			{
    				k1++;
    			    q1 = word1[i][k1];
    			}	    
    		}
    		q2 = word2[i][0];
    		for(j=0;word3[i][j]!='\0';j++)
    		{
    			if(word3[i][j]==q2)
    			{
    				k2++;
    			    q2 = word2[i][k2];
    			}	    
    		}
    		if(q1 == '\0'&&q1 == '\0')
    		    put[i] = "yes";
    		else 
    		    put[i] = "no";
    	}
    	for(i=0;i<n;i++)
    	    cout<<"Case "<<i+1<<": "<<put[i]<<endl;
    }
    

    Java :

    import java.util.*;
    public class Main {
    	public static void main(String[] args) {
    		Scanner input=new Scanner(System.in);
    		int n=input.nextInt();
    		String a=null;
    		String b=null;
    		String c=null;
    		
    		
    			for(int i=0;i<n;i++) {
    				a=input.next();
    				b=input.next();
    				c=input.next();
    				
    				if((a.length()+b.length())==c.length()) {
    					int num=0,pos=0;
    					for(int j=0;j<a.length();j++) {
    						char target=a.charAt(j);
    						for(;pos<c.length();pos++) {
    							if(target==c.charAt(pos)) {
    								num++;
    								break;
    							}
    						}
    		
    				   }
    					int num2=0,pos2=0;
    					for(int j=0;j<b.length();j++) {
    						char target=b.charAt(j);
    						for(;pos2<c.length();pos2++) {
    							if(target==c.charAt(pos2)) {
    								num2++;
    								break;
    							}
    						}
    
    				   }
    					if(num==a.length()&&num2==b.length()) {
    						System.out.println("Case "+(i+1)+": yes");
    					}else {
    						System.out.println("Case "+(i+1)+": no");
    					}
    				}else {
    					System.out.println("Case "+(i+1)+": no");
    				}
    				
    			
    				
    			
    		
    		    }
    			
    			
    			
    	}
    }
    
    • 1

    信息

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