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;
}