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实现pdf转换成word/txt纯文本文件
Jun 07 Python
pandas的唯一值、值计数以及成员资格的示例
Jul 25 Python
对python PLT中的image和skimage处理图片方法详解
Jan 10 Python
详解Python_shutil模块
Mar 15 Python
python里dict变成list实例方法
Jun 26 Python
python每天定时运行某程序代码
Aug 16 Python
解决Python3用PIL的ImageFont输出中文乱码的问题
Aug 22 Python
Python 实现大整数乘法算法的示例代码
Sep 17 Python
Python3实现发送邮件和发送短信验证码功能
Jan 07 Python
pytorch构建多模型实例
Jan 15 Python
150行Python代码实现带界面的数独游戏
Apr 04 Python
Python安装并操作redis实现流程详解
Oct 13 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
WAR3重制版DOTA 5V5初体验
2020/04/09 DOTA
一个php作的文本留言本的例子(三)
2006/10/09 PHP
php下实现在指定目录搜索指定类型文件的函数
2008/10/03 PHP
php中0,null,empty,空,false,字符串关系的详细介绍
2013/06/20 PHP
Yii2.0框架模型多表关联查询示例
2019/07/18 PHP
php实现商城购物车的思路和源码分析
2020/07/23 PHP
jQuery 表单验证扩展(三)
2010/10/20 Javascript
JS正则表达式大全(整理详细且实用)
2013/11/14 Javascript
javascript图片相似度算法实现 js实现直方图和向量算法
2014/01/14 Javascript
js document.getElementsByClassName的使用介绍与自定义函数
2016/11/25 Javascript
JS键盘版计算器的制作方法
2016/12/03 Javascript
JavaScript上传文件时不用刷新页面方法总结(推荐)
2017/08/15 Javascript
Node.js学习之地址解析模块URL的使用详解
2017/09/28 Javascript
快速搭建React的环境步骤详解
2017/11/06 Javascript
vuejs项目打包之后的首屏加载优化及打包之后出现的问题
2018/04/01 Javascript
微信小程序授权登录及解密unionId出错的方法
2018/09/26 Javascript
vue.js的vue-cli脚手架中使用百度地图API的实例
2019/01/21 Javascript
layer 关闭指定弹出层的例子
2019/09/25 Javascript
JS如何判断对象是否包含某个属性
2020/08/29 Javascript
Python通过websocket与js客户端通信示例分析
2014/06/25 Python
使用Python标准库中的wave模块绘制乐谱的简单教程
2015/03/30 Python
解读! Python在人工智能中的作用
2017/11/14 Python
VSCode Python开发环境配置的详细步骤
2019/02/22 Python
Python concurrent.futures模块使用实例
2019/12/24 Python
python 如何将office文件转换为PDF
2020/09/22 Python
基于Python制作一副扑克牌过程详解
2020/10/19 Python
AVON雅芳官网:世界上最大的美容化妆品公司之一
2016/11/02 全球购物
拉斯维加斯城市观光通行证:Las Vegas Pass
2019/05/21 全球购物
中间件分为哪几类
2016/09/18 面试题
餐厅楼面主管岗位职责范本
2014/02/16 职场文书
企业后勤岗位职责
2014/02/28 职场文书
大班亲子运动会方案
2014/06/10 职场文书
2014年团员学习十八大思想汇报
2014/09/13 职场文书
党的群众路线对照检查材料思想汇报(学校)
2014/10/04 职场文书
四风查摆问题自查报告
2014/10/10 职场文书
美容院管理规章制度
2015/08/05 职场文书