Binary String Matching

来源:互联网 发布:iphone铃声助手mac 编辑:程序博客网 时间:2024/05/16 18:54

Binary String Matching

时间限制:3000 ms  |  内存限制:65535 KB
难度:3
描述
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.
样例输入
31110011101101011100100100100011010110100010101011 
样例输出
303 


//解题思路:取A的第一位,依次与B的各位进行比较,如果相同,比较A的第二位....,如果A完整出现,sum++。然后继续比较。#include<stdio.h>#include<string.h>int main(){char a[10]={'1','2'},b[1000]={'1','2','3','1','2','3'};int sum,i,j,n,c;while(~scanf("%d",&n))//输入n值{while(n--){scanf("%s\n%s",&a,&b);//输入待比较的字符串/*对输入的字符串进行比较*/for(sum=0,i=0;i<strlen(b);i++){for(c=i,j=0;j<strlen(a);j++){if(a[j]!=b[c])break;else c++;}if(j==strlen(a))sum++;}printf("%d\n",sum);}}}