# Binary String Matching

##### 最后更新日期:2015-05-12 22:16:06
NYOJ
http://acm.nyist.net/JudgeOnline/problem.php?pid=5

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

3
0
3

[code lang="cpp"]
#include<cstdio>
#include<cmath>

char strA[10+1];
char strB[1000+1];

int sovle(){
int n,j;
scanf("%d",&n);
while (n--){
int count=0;
scanf("%s %s",strA,strB);
for (int i=0; strB[i]!='\0'; ++i){
int flag=0;
for (j=0; strA[j]!='\0'; ++j){
if ((strB[i+j]=='\0') || (strA[j]!=strB[j+i])){
flag=1;
break;
}
}
if (0==flag){
count++;
}
}
printf("%d\n",count);
}
return 0;
}

int main(){
sovle();
return 0;
}
[/code]