2020-05-16

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int pipei(char *a, char *b);
int main(){
char String[1000001], Pattern[10][100001];
int N, i, j;
scanf("%s", String);
scanf("%d", &N);
for(i = 0; i < N; i++) {
scanf("%s", Pattern[i]); }
for(i = 0; i < N; i++) {
j = pipei(String, Pattern[i]);
if(j == 0)
printf(“Not Found”);
else
printf("%s", String[i]+j);
printf("\n"); }
}
int pipei(char *a, char *b){
int l1, l2; int i = 0, j = 0;
l1 = strlen(a);
l2 = strlen(b);
while(i <= l1 && j <= l2) {
if(a[i] == b[i])
{ i++;
j++; }
else {
i = i-j+1;
j = 0;
}
}
if(j == l2)
{ return i-l2;
}
else
return 0;
}
想用bf算法得出答案,可是总是出错,是哪里出现了问题呢,跪求各位大佬解释……(手机打的,排面不是很好)

猜你喜欢

转载自blog.csdn.net/jiuchena/article/details/106162844