当前位置: 首页 > wzjs >正文

软件开发专业课程有哪些百度seo关键词排名优化软件

软件开发专业课程有哪些,百度seo关键词排名优化软件,网络信息有限公司,传奇sf网站怎么做任务 需要在某大序列中查找子序列。 解决方案 如果序列是字符串(普通的或者Unicode),Python 的字符串的 find 方法以及标准库的re模块是最好的工具。否则,应该使用Knuth-Morris-Pratt算法(KMP): def KnuthMorrisPratt(text,pattern): 在序列text中找…

任务

需要在某大序列中查找子序列。

解决方案

如果序列是字符串(普通的或者Unicode),Python 的字符串的 find 方法以及标准库的re模块是最好的工具。否则,应该使用Knuth-Morris-Pratt算法(KMP):

def KnuthMorrisPratt(text,pattern):
'''在序列text中找到pattern的子序列的起始位置每个参数都可以是任何可迭代对象在每次产生一个结果时,对text的读取正好到达(包括)对pattern的一个匹配'''#确保能对pattern进行索引操作,同时制作pattern的一个拷贝,以防在生成结果时意外地修改patternpattern = list(pattern)length = len(pattern)#创建KMP"移量表"并命名为shiftsshifts = [1]*(length + 1)shift = 1for pos,pat in enumerate(pattern):while shift <= pos and pat != pattern[pos - shift]:shift += shifts[pos - shift]shifts[pos + 1] = shift#执行真正的搜索startPos = 0matchLen = 0for c in text:while matchLen == length or matchLen >= 0 and pattern[matchLen] != c:startPos += shifts[matchLen]matchLen -= shifts[matchLen]matchLen += 1if matchLen == length:yield startPos

讨论

本节实现的 Knuth-Morris-Pratt 算法可被用于在一个大文本的连续序列中查找某种指定的模式。由于 KMP 是以顺序的方式访问文本,所以很自然地,我们也可以将其应用于包括文本在内的任意可迭代对象。在处理阶段,算法会创建一个关于偏移量的表,它消耗的时间正比于模式的长度,而每个文本标志则以恒定的时间处理。在所有关于文本处理的基础算法书中都可以看到 KMP 算法的解释和示例。(更多资料一栏中也提供了推荐读物。)
如果 text 和 pattern 都是 Python 字符串,可以通过使用 Python 的内建搜索方法得到一个更快的方案:

def finditer(text,pattern):pos = -1while True:pos = text.find(pattern,pos+1)if pos <0:breakyield pos

比如,使用一个长度为4的字母表(“ACGU”),在长度为100000的文本中查找长度为8的一个模式,在我的计算机上,借助 finditer 函数耗时为 4.3ms,但使用 KnuthMorrisPrat函数执行同样任务则需要540ms(在 Python2.3 中;而在 Python2.4 会快一些,约 480ms但仍然比 finditer 慢了超过 100倍)。所以请记住:本节的算法适用于在通用的序列中进行搜索,包括那些数据量大到无法放入内存的情况,如果只需要对字符串搜索Python 内建的搜索方法具有完全压倒性的优势。

http://www.dtcms.com/wzjs/425941.html

相关文章:

  • 织梦网站根目录标签网络营销工作内容
  • 酒店 深圳 网站建设打开网址跳转到国外网站
  • 网站cnameseo是什么姓氏
  • 网站跨平台html网页制作网站
  • wordpress标签样式表seo是指什么意思
  • 房屋建筑设计网站黄页引流推广网站入口
  • 保定 网站建设深圳关键词推广整站优化
  • 医院网站 功能今日头条最新消息
  • 网络服务器有哪些长春网站快速优化排名
  • 双流规划建设管理局网站企业在线培训系统
  • 网站做的好的公司免费企业网站建设流程
  • 织梦网站导航固定明星百度指数在线查询
  • 东莞高埗做网站哪个公司好中国国家培训网是真的吗
  • 网站如何做se完整的社群营销方案
  • 网站建设创业计划书模板范文百度推广手机版
  • html模板 网站泰州seo
  • 美术馆网站建设方案宁波做网站的公司
  • 建站公司前途百度app下载官方免费下载最新版
  • 网站登录界面html怎样进行seo推广
  • 建湖做网站找哪家好外贸seo软件
  • 政府网站建设指导河南百度推广电话
  • dz论坛网站建设seo+网站排名
  • 成都个人网站建设厦门seo公司
  • 军博做网站公司seo服务深圳
  • 苏宁易购网站设计怎么制作百度营销推广官网
  • 做网站用windows还是mac企业网站seo案例
  • 百度网站介绍显示图片怎么做网站平台
  • 大良网站建设如何西安网站建设方案优化
  • wordpress站群被谷歌k百度安装app
  • .net企业网站百度快速收录3元一条