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定时检查启动某个exe程序适合检测exe是否挂了
Jan 21 Python
Python创建文件和追加文件内容实例
Oct 21 Python
python数组过滤实现方法
Jul 27 Python
Python简单格式化时间的方法【strftime函数】
Sep 18 Python
Python网络编程之TCP套接字简单用法示例
Apr 09 Python
Python RabbitMQ消息队列实现rpc
May 30 Python
Python requests模块实例用法
Feb 11 Python
python中dict()的高级用法实现
Nov 13 Python
将python包发布到PyPI和制作whl文件方式
Dec 25 Python
Selenium元素定位的30种方式(史上最全)
May 11 Python
Pytorch中TensorBoard及torchsummary的使用详解
May 12 Python
Pytorch DataLoader shuffle验证方式
Jun 02 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
php 数组的指针操作实现代码
2011/02/08 PHP
php中用socket模拟http中post或者get提交数据的示例代码
2013/08/08 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
实现连缀调用的map方法(prototype)
2009/08/05 Javascript
javascript三元运算符用法实例
2015/04/16 Javascript
jQuery基于扩展简单实现倒计时功能的方法
2016/05/14 Javascript
switch语句的妙用(必看篇)
2016/10/03 Javascript
bootstrap下拉列表与输入框组结合的样式调整
2016/10/08 Javascript
jQuery实现的小图列表,大图展示效果幻灯片示例
2016/10/25 Javascript
微信小程序开发之Tabbar实例详解
2017/01/09 Javascript
javascript基础知识讲解
2017/01/11 Javascript
vue.js 2.0实现简单分页效果
2019/07/29 Javascript
vue 中固定导航栏的实例代码
2019/11/01 Javascript
vue element-ui el-date-picker限制选择时间为当天之前的代码
2019/11/07 Javascript
vue操作dom元素的3种方法示例
2020/09/20 Javascript
python求众数问题实例
2014/09/26 Python
Python读写zip压缩文件的方法
2018/08/29 Python
python画柱状图--不同颜色并显示数值的方法
2018/12/13 Python
python 使用pandas计算累积求和的方法
2019/02/08 Python
python标记语句块使用方法总结
2019/08/05 Python
PyCharm 2019.3发布增加了新功能一览
2019/12/08 Python
django数据模型(Model)的字段类型解析
2019/12/25 Python
Django celery异步任务实现代码示例
2020/11/26 Python
如何用 Python 处理不平衡数据集
2021/01/04 Python
CSS3中各种颜色属性的使用教程
2016/05/17 HTML / CSS
彪马香港官方网上商店:PUMA香港
2020/12/06 全球购物
生物技术专业研究生自荐信
2013/09/22 职场文书
彩色的非洲教学反思
2014/02/18 职场文书
离职保密承诺书
2014/05/28 职场文书
报到证办理个人委托书
2014/10/06 职场文书
招商引资工作汇报材料
2014/10/28 职场文书
装饰技术负责人岗位职责
2015/04/13 职场文书
董事长年会致辞
2015/07/29 职场文书
2019年感恩励志演讲稿(收藏备用)
2019/09/11 职场文书
十大必看国产动漫排名,魁拔上线,第二曾在日本播出
2022/03/18 国漫
使用Python开发贪吃蛇游戏 SnakeGame
2022/04/30 Python