1 solutions

  • 0
    @ 2025-11-5 17:28:56

    C :

    #include<stdio.h>
    #include<string.h>
    int main()
    {
    	int n,count;
    	char *p=NULL;
    	char A[11],B[1001];
    	scanf("%d",&n);
    	getchar();
    	for(int i=0;i<n;i++)
    	{
    		count=0;
    		gets(A);
    		gets(B);
    		int a=strlen(A);
    	    int b=strlen(B);
    	    int j=0;
    		if(b-a>0)
    		{
    			for(p=B;j<=b-a;p++,j++)
    			{
    				if(*p==A[0])
    				{
    					int k;
    				    for(k=1;k<a;k++)
    				    {
    					    if(*(p+k)==A[k]) continue;
    					    else break;
    				    }
    				    if(k==a) count++;
    				}
    			}
    		}
    		printf("%d\n",count);
    	}
    	return 0;
    }
    

    C++ :

    #include<iostream>
    #include<string>
    #include<cstdio>
    using namespace std;
    
    int main()
    {
    	//freopen("1.txt","r",stdin);
    	//freopen("2.txt","w",stdout);
    	
    	int n;
    	cin >> n;
    	
    	string a,b;
    	int len_a; 
    	int dl;		// a 和 b 长度查
    	int cnt;	// 计数
    	int i,j,k; 
    	while(n--) {
    		cin >> a >> b;
    		
    		cnt = 0;
    		len_a = a.length();
    		dl = b.length()-a.length();
    		for(i = 0; i <= dl; i++) {		// 应该是等于 
    			k = i;
    			for(j = 0; j < len_a && a[j]==b[k]; j++, k++);
    			if(j == len_a) {
    				cnt++;
    			}
    		}
    		
    		cout << cnt << endl;
    	}	
    	return 0;
    }
    
    • 1

    【START】2015暑期训练——Binary String Matching

    Information

    ID
    18473
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    (None)
    # Submissions
    0
    Accepted
    0
    Uploaded By