天天看點

字元串比對

版權聲明:您好,轉載請留下本人部落格的位址,謝謝 https://blog.csdn.net/hongbochen1223/article/details/48266231

描述

Given two strings A and B, whose alphabet consist only ‘0’ and ‘1’. Your task is only to tell how many times does A appear as a substring of B? For example, the text string B is ‘1001110110’ while the pattern string A is ‘11’, you should output 3, because the pattern A appeared at the posit

輸入

The first line consist only one integer N, indicates N cases follows. In each case, there are two lines, the first line gives the string A, length (A) <= 10, and the second line gives the string B, length (B) <= 1000. And it is guaranteed that B is always longer than A.

輸出

For each case, output a single line consist a single integer, tells how many times do B appears as a substring of A.

樣例輸入

3

11

1001110110

101

110010010010001

1010

110100010101011

樣例輸出

代碼實作:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n,i,j;

    int temp;

    /** 儲存A,B字元串 **/
    char A[11];
    char B[1001];

    //儲存個數
    int count = 0;

    scanf("%d",&n);
    while(n--){
        getchar();

        count = 0;

        scanf("%s",A);
        scanf("%s",B);

        for(i = 0;B[i] != '\0';i++){

            if(B[i] == A[0]){
                //printf("0 == yes\n");

                int temp = i;

                for(j = 0;A[j] != '\0' && B[temp] != '\0';j++,temp++){

                    if(B[temp] != A[j]){
                        //printf("break\n");
                        break;
                    }

                    //printf("==\n");
                }

                if(A[j] == '\0')
                    count++;
            }
        }

        printf("%d\n",count);
    }

    return 0;
}