解题思路:使用KMP算法也可以过。
    具体实现百度一大堆
注意事项:

参考代码:

#include <bits/stdc++.h>
using namespace std;
void get_next(char T[],int next[]){
	int i,j;
	i = 0;
	j = 1;
	next[1] =0;
	while(j<T[0]){
		/* 第一个元素*/
		if(i == 0 ||T[i]==T[j])
		{
			i++;
			j++;
			next[j] = i;
		}
	else
		i = next[i];//不相等  
	}
	
}

int Index_KMP(char s[],char T[]){
	int next[1000];
	int j = 1;
	int i = 1;
	get_next(T,next);
	
	while(i<=s[0] &&j<=T[0]){
		if(j==0 || s[i] == T[j]){
			i++;
			j++;
		}
		else
			j = next[j];
	}
	if(j>T[0])
		return i-T[0];
	return 0;
}
int main ()
{
	char T[1000],S[1000];
	int i,k;
	while(scanf("%s %s",S,T)!=EOF){
		k = strlen(T);
		for(i = strlen(T);i>0;i--)
			T[i] = T[i-1];
		T[0] = k;
	k = strlen(S);
	for(int i = strlen(S);i>0;i--)
		S[i] = S[i-1];
	
	S[0] = k;
	printf("%d\n",Index_KMP(S,T));
	}
	return 0;
}


点赞(0)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论