Python字符串匹配算法KMP实例


Posted in Python onJuly 18, 2015

本文实例讲述了Python字符串匹配算法KMP。分享给大家供大家参考。具体如下:

#!/usr/bin/env python
#encoding:utf8
def next(pattern):
p_len = len(pattern)
pos = [-1]*p_len
j = -1
for i in range(1, p_len):
while j > -1 and pattern[j+1] != pattern[i]:
j = pos[j]
if pattern[j+1] == pattern[i]:
j = j + 1
pos[i] = j
return pos
def kmp(ss, pattern):
pos = next(pattern)
ss_len = len(ss)
pattern_len = len(pattern)
j = -1
for i in range(ss_len):
while j > -1 and pattern[j+1] != ss[i]:
j = pos[j]
if pattern[j+1] == ss[i]:
j = j + 1
if j == pattern_len-1:
print 'matched @: %s' % str(i-pattern_len+1)
j = pos[j]
kmp(u'上海自来水来自海上海', u'上海')

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python批量提交沙箱问题实例
Oct 08 Python
Python魔术方法详解
Feb 14 Python
python监控文件或目录变化
Jun 07 Python
Python 爬虫学习笔记之单线程爬虫
Sep 21 Python
win10下Python3.6安装、配置以及pip安装包教程
Oct 01 Python
python中urlparse模块介绍与使用示例
Nov 19 Python
python实现图像识别功能
Jan 29 Python
python实现输入数字的连续加减方法
Jun 22 Python
python调用百度语音识别api
Aug 30 Python
对python打乱数据集中X,y标签对的方法详解
Dec 14 Python
解决Tensorflow 内存泄露问题
Feb 05 Python
Python3爬虫关于识别检验滑动验证码的实例
Jul 30 Python
Python通过正则表达式选取callback的方法
Jul 18 #Python
Django的URLconf中使用缺省视图参数的方法
Jul 18 #Python
Python的Django框架中URLconf相关的一些技巧整理
Jul 18 #Python
在Django框架中伪造捕捉到的URLconf值的方法
Jul 18 #Python
Django中传递参数到URLconf的视图函数中的方法
Jul 18 #Python
在Django的URLconf中使用命名组的方法
Jul 18 #Python
在Django的URLconf中使用多个视图前缀的方法
Jul 18 #Python
You might like
PHP4中session登录页面的应用
2008/07/25 PHP
php正则表达式学习笔记
2015/11/13 PHP
PHP实现ASCII码与字符串相互转换的方法
2017/04/29 PHP
PHP中$GLOBALS与global的区别详解
2019/03/21 PHP
用document.documentElement取代document.body的原因分析
2009/11/12 Javascript
15 个 JavaScript Web UI 库
2010/05/19 Javascript
js post方式传递提交的实现代码
2010/05/31 Javascript
收集的10个免费的jQuery相册
2011/02/26 Javascript
Array栈方法和队列方法的特点说明
2014/01/24 Javascript
详解js闭包
2014/09/02 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
2014/09/17 Javascript
js事件绑定快捷键以ctrl+k为例
2014/09/30 Javascript
javascript实现复选框超过限制即弹出警告框的方法
2015/02/25 Javascript
javascript多物体运动实现方法分析
2016/01/08 Javascript
浅谈JavaScript 标准对象
2016/06/02 Javascript
js定义类的几种方法(推荐)
2016/06/08 Javascript
JS排序之选择排序详解
2017/04/08 Javascript
[54:53]完美世界DOTA2联赛PWL S2 GXR vs PXG 第二场 11.18
2020/11/18 DOTA
Python装饰器的函数式编程详解
2015/02/27 Python
python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法
2015/05/15 Python
Python实现采用进度条实时显示处理进度的方法
2017/12/19 Python
解决python3 安装完Pycurl在import pycurl时报错的问题
2018/10/15 Python
使用pandas读取文件的实现
2019/07/31 Python
pytorch GAN生成对抗网络实例
2020/01/10 Python
Edwaybuy西班牙:小米在线商店
2019/12/04 全球购物
JACK & JONES荷兰官网:男士服装和鞋子
2021/03/07 全球购物
财务经理的岗位职责
2013/12/17 职场文书
咖啡店自主创业商业计划书
2014/01/22 职场文书
详细的大学生创业计划书模板
2014/01/27 职场文书
物流专业自荐信
2014/05/23 职场文书
小学生感恩老师演讲稿
2014/08/28 职场文书
2014年最新版离婚协议书范本
2014/11/25 职场文书
投资意向协议书
2015/01/29 职场文书
超市采购员岗位职责
2015/04/07 职场文书
2017年寒假少先队活动总结
2016/04/06 职场文书
python 自动刷新网页的两种方法
2021/04/20 Python