方法一:滑窗法。时间是 O(n*m)#include
#include
#define Max_nums 100
using namespace std;
int findSubIndex(char *str1, char* str2){
for(int i=0; i<=strlen(str1)-strlen(str2); i++){
int j=0;
// 这里开个大小strlen(str2)的滑窗
while(j
if(j==strlen(str2)) return i+1;
}
return 0;
}
int main(){
char str1[Max_nums],str2[Max_nums];
while(cin>>str1>>str2){
cout<
}
return 0;
}
方法二:kmp算法。时间: O(m+n)#include
#include
#define Max_nums 100
using namespace std;
void getNext(char *str, int *next){
//生成next数组值
next[0] = -1;
int k=-1, j=0;
while(j
if(k==-1 || str[k]==str[j])
next[