关于kmp匹配成功后……
  • 板块学术版
  • 楼主y_kx_b
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/7/2 10:40
  • 上次更新2023/10/27 22:06:25
查看原帖
关于kmp匹配成功后……
592895
y_kx_b楼主2022/7/2 10:40

请问为什么第11行 j=border[j]; 去掉后代码还能过? 是数据水了还是kmp匹配成功后根本就不用跳 nextnext? 代码如下:

int find(){
		int ans=0;
		nn=strlen(ss);
		for(int i=0,j=0;i<nn;i++){
			while(~border[j]&&ss[i]!=s[j])
				j=border[j];
			if(ss[i]==s[j])j++;
			if(j==n){
//				printf("%d\n",i-n+2);
				ans++;
				j=border[j];
			}
		}
		return ans;
	}
2022/7/2 10:40
加载中...