已解决
二.831(KMP)字符串详解
来自网友在路上 162862提问 提问时间:2023-11-07 15:00:06阅读次数: 62
最佳答案 问答题库628位专家为你答疑解惑
ne[3]枚举2次
ne[4],枚举3次
ne[5],枚举4次]b在后面了,就一个b就不可能在前面了]b舍弃
ne[6],枚举i-1次]一眼看最长相等前后缀,就是aab,aab
ne[7],aaba,aaba
ne[8],枚举i-1次]aabaa,aabaa
同理
怎么快速看呢!我想把b给夹起来]把中间夹的数越多就多
其实
加的有规律,最多加一
减的规律,例ne[9]不匹配了,返回ne[8]找匹配里的aabaa再找 最长相等前后缀为2.
aabaa长度5,找ne[5]=2所以是2
代码



第一行:p[2]=p[1]相等了,j=1]两个p分别代表i,j两个指针
第二行:
第三行:ne[2]=1
第一行:p[3]与p[2]不等,j=0空了
第二行:
第三行:ne[3]=0
第一行:
第二行:p[4]与p[1]相等,j=1
第三行:ne[4]=1
循环4次后ne[5]=2,ne[6]=3,ne[7]=4,

第一行:
第二行:p[5]与p[2]相等,j加到5
第三行:ne[8]=5
第一行:回调到这个前缀的末尾第二个a,j=ne[5]=2
再做while,a[9]不等于a[3],j=ne[2]=1
第二行:相等了,j=2
第三行:ne[9]=2
也可以这样
最长相等前后缀为5
查看全文
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"二.831(KMP)字符串详解":http://eshow365.cn/6-34551-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: 如何平衡三维模型的顶层合并构建的文件大小与质量关系
- 下一篇: Git同时配置Gitee和GitHub