A题用KMP的思想为什么错了?
A题用Kmp的Next数组找为什么错了,求几组反例。
#include <bits/stdc++.h>
using namespace std;
char s[100010];
int nex[100010];
void get_next(const int n){
int k=-1,j=0;
nex[0]=-1;
while(j<n-1){
if(k==-1||s[j]==s[k]){
if(s[++j]==s[++k]){
nex[j]=nex[k];
}
else nex[j]=k;
}
else k=nex[k];
}
}
int main(){
int n;
scanf("%d %s",&n,s);
get_next(n);
for(int i=1;i<n;i++)
if(s[i]<s[nex[i]]){printf("YES\n");return 0;}
printf("NO\n");
return 0;
}
美的集团公司福利 878人发布