码迷,mamicode.com
首页 > Web开发 > 详细

KMP(http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2772)

时间:2014-06-18 09:29:37      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:http   ext   get   string   cti   acm   

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char a[1000001],b[1000001];
int next[1000001];
int l,l2;
void Getnext()
{
int i=0;
int j=-1;
next[0]=-1;
while(i<l2)
{
if(-1==j||b[i]==b[j])
{
i++;
j++;
next[i]=j;
}
else j=next[j];
}
}
int main()
{

while(scanf("%s",a)!=EOF)
{
scanf("%*c%s",b);
l=strlen(a);
l2=strlen(b);
Getnext();
int i=0;
int j=0;
while(i<l&&j<l2)
{
if(a[i]==b[j]||j==-1)
{
i++;
j++;

}
else j=next[j];
}
if(j>=l2) printf("%d\n",i-l2+1);//判断条件
else printf("-1\n");
}
return 0;
}

KMP(http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2772),布布扣,bubuko.com

KMP(http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2772)

标签:http   ext   get   string   cti   acm   

原文地址:http://www.cnblogs.com/zhangmingcheng/p/3793326.html

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