lua实现KMP字符串匹配。
来源:互联网 发布:怎么修改远程桌面端口 编辑:程序博客网 时间:2024/05/22 00:33
串S 串P 然后构建Next数组 代表退回的位置。匹配失败 匹配串就往Next[j-1]+1位置从新开始匹配 如果都回到1了 那就可以i++了
lua下标为1开始 和C/C++不一样。这俩都是下标0开始的
S={4,3,4,41,46,5}P={3,4,41,46,5} --这里可以试试{3,5,41,46,5} 字符串。可以改的Next={}function makeNext()Next[1]=0;for i=2,5,1 dolocal j=Next[i-1]while(S[i]~=P[j+1] and j>=1)doj=Next[j]endif(S[i]==P[j+1])thenNext[i]=j+1 elseNext[i]=1endendendfunction KMP()makeNext()for now=1,6,1 dolocal i=nowlocal pos=1while(pos<5 and i<6)doif(S[i]==P[pos])theni=i+1pos=pos+1 else if(pos==1) then i=i+1 else pos=Next[pos-1]+1 endend endif(pos==5 and (i-now)==5)then print("P is sub")returnendendprint("not sub")endKMP()
0 0
- lua实现KMP字符串匹配。
- kmp字符串匹配算法实现
- 字符串匹配KMP算法实现
- KMP字符串匹配算法实现
- 字符串匹配算法KMP实现
- kmp字符串匹配C实现
- kmp算法实现字符串匹配
- 字符串匹配 CCF KMP算法实现字符串匹配
- KMP字符串模式匹配的C实现
- KMP字符串匹配算法C语言实现
- 字符串匹配的KMP算法实现
- KMP字符串匹配C++代码实现
- kmp算法实现的字符串匹配
- KMP字符串模式匹配算法实现(php)
- C++实现字符串匹配的KMP算法
- 【小算法】KMP字符串匹配算法实现
- Golang实现的KMP字符串匹配算法
- 字符串匹配算法KMP Java实现
- 微信WeixinJSBridge API(屏蔽右上角按钮等)
- Android Studio 出现 Gradle's dependency cache may be corrupt 错误
- 重入锁--ReentrantLock
- 浮动布局所带来的影响以及如何清除浮动
- 变量与函数
- lua实现KMP字符串匹配。
- Android N Audio播放二:setDataSource窥探
- 反思一下
- tomcat远程debug配置详解,Eclipse结合
- mac下安装和使用MySQL-python
- leecode 解题总结:56. Merge Intervals
- ubuntu14.04系统下搭建支持https的apache2服务器
- 前端web开发命名规范
- iOS tabbar设置透明背景