码迷,mamicode.com
首页 > 编程语言 > 详细

NYoj-Binary String Matching-BF算法

时间:2014-10-17 23:28:22      阅读:391      评论:0      收藏:0      [点我收藏+]

标签:c语言   iostream   cstring   算法   string   

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.
样例输入
3
11
1001110110
101
110010010010001
1010
110100010101011 
样例输出
3
0
3 
//******BF算法***********/ 
#include<cstdio>
#include<cstring>
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
#define MAXSTRLEN  1000
int main()
{
	char s[MAXSTRLEN+10];
	char t[11];
	int T;
	scanf("%d",&T);
	while(T--)
	{
		scanf("%s %s",t,s);
		int j=0,i=0;
	    int len_s=strlen(s);
	    int len_t=strlen(t);
	    int count=0;
	    while(i<=len_s)
	    {
	    	if(s[i]==t[j])
		    {
			   ++i;
			   ++j;
			   if(j==len_t)
			   { 
			      count++;
			      i=i-len_t+1;
			      j=0; 
			   }  
		    }
		    else
		    {
			   i=i-j+1;
			   j=0;
		    }
       }
       printf("%d\n",count);
	}
	
	return 0;
} 


NYoj-Binary String Matching-BF算法

标签:c语言   iostream   cstring   算法   string   

原文地址:http://blog.csdn.net/holyang_1013197377/article/details/40188855

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!