码迷,mamicode.com
首页 > 其他好文 > 详细

Hdu oj 1686 Oulipo

时间:2015-08-07 13:21:56      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:

#include<stdio.h>
#include<string.h>
#define N 10010
char str1[N],str2[N*100];
int cent,i,j;
int len1,len2;
int p[N];
void getp()
{
	i=0,j=-1;
	p[i]=j;
	while(i<len1)
	{
	   if(j==-1||str1[i]==str1[j])
       {
    	  i++,j++;
    	  p[i]=j;
       }
	   else
	   j=p[j];	
    }
}
void kmp()
{
	getp();
	i=0,j=0;
	while(i<len2)
	{
	   if(j==-1||str2[i]==str1[j])
       {
    	  i++,j++;
    	  if(j==len1)
    	  cent++;
       }
	   else
	   j=p[j];
    }
}
int main()
{
    int t;
	scanf("%d",&t);
	while(t--)
	{
		cent=0;
		scanf("%s%s",str1,str2);
		len1=strlen(str1);
		len2=strlen(str2);
		kmp();
		printf("%d\n",cent);
	}	
	return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

Hdu oj 1686 Oulipo

标签:

原文地址:http://blog.csdn.net/zm_11/article/details/47337247

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