求助G
  • 板块灌水区
  • 楼主cly312
  • 当前回复5
  • 已保存回复5
  • 发布时间2024/8/16 21:08
  • 上次更新2024/8/17 00:24:24
查看原帖
求助G
437243
cly312楼主2024/8/16 21:08
Runtime Error.

Received signal 11: Segmentation fault with invalid memory reference.

第一个点炸了

代码:

#include<bits/stdc++.h>
using namespace std;
int n,m,nxt[12];
string s,p;
void get_next(){
	nxt[1]=0;
	for(int i=2,j=0;i<=m;i++){
		while(j&&p[i]!=p[j+1]) j=nxt[j];
		if(p[i]==p[j+1]) j++;
		nxt[i]=j;
	}
}
int main(){
	cin>>s;
	n=s.size();
	m=6;
	s=" "+s;
	p=" friend";
	vector<int> pos;
	get_next();
	for(int i=1,j=0;i<=n;i++){
		while(j&&s[i]!=p[j+1]) j=nxt[j];
		if(s[i]==p[j+1]) j++;
		if(j==m){
			pos.push_back(i-j+1);
			j=nxt[j];
		}
	}
	int ans=pos.size();
	for(int i=0;i<pos.size()-1;i++){
		if(pos[i+1]-pos[i]-5<=3) ans--,i++;
	}
	cout<<ans;
}
2024/8/16 21:08
加载中...