Python字符串匹配算法KMP实例

 更新时间:2015年07月18日 17:29:40   作者:鉴客  
这篇文章主要介绍了Python字符串匹配算法KMP实现方法,实例分析了Python针对字符串操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了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基础教程之浅拷贝和深拷贝实例详解

    这篇文章主要介绍了Python基础教程之浅拷贝和深拷贝实例详解的相关资料,需要的朋友可以参考下
    2017-07-07
  • Python面向对象之类的封装操作示例

    Python面向对象之类的封装操作示例

    这篇文章主要介绍了Python面向对象之类的封装操作,结合具体实例形式分析了Python面向对象程序设计中类方法的定义与使用相关操作技巧,需要的朋友可以参考下
    2019-06-06
  • python命令 -u参数用法解析

    python命令 -u参数用法解析

    这篇文章主要介绍了python命令 -u参数用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Python爬虫工具requests-html使用解析

    Python爬虫工具requests-html使用解析

    这篇文章主要介绍了Python爬虫工具requests-html使用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • python面积图之曲线图的填充

    python面积图之曲线图的填充

    这篇文章主要介绍了python面积图之曲线图的填充,文章围绕主题的相关资料展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下,希望对你的学习有所帮助
    2022-06-06
  • 实例详解Python装饰器与闭包

    实例详解Python装饰器与闭包

    闭包是Python装饰器的基础。要理解闭包,先要了解Python中的变量作用域规则。本文主要给大家介绍Python装饰器与闭包的相关知识,需要的朋友可以参考下
    2019-07-07
  • Python实现定时任务利器之apscheduler使用详解

    Python实现定时任务利器之apscheduler使用详解

    在Python中,还可以用第三方包来管理定时任务,比如celery、apscheduler。相对来说apscheduler使用起来更简单一些,这里来介绍一下apscheduler的使用方法
    2022-10-10
  • Python3 hashlib密码散列算法原理详解

    Python3 hashlib密码散列算法原理详解

    这篇文章主要介绍了Python3 hashlib密码散列算法原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • python代码区分大小写吗

    python代码区分大小写吗

    在本篇文章里小编给大家整理了一篇关于python是否区分大小写的相关内容,对此有疑惑的新手们来学习下吧。
    2020-06-06
  • Python新手们容易犯的几个错误总结

    Python新手们容易犯的几个错误总结

    python语言里面有一些小的坑,特别容易弄混弄错,初学者若不注意的话,很容易坑进去,下面我给大家深入解析一些这几个坑,希望对初学者有所帮助,需要的朋友可以参考学习,下面来一起看看吧。
    2017-04-04

最新评论