首页 / 知识
python怎么实现模式匹配
2023-11-12 13:00:00
python通过BF算法实现关键词匹配,BF算法,即暴风(BruteForce)算法,是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和T的第二个字符;若不相等,则比较S的第二个字符和T的第一个字符,依次比较下去,直到得出最后的匹配结果。BF算法是一种蛮力算法。
代码如下:
#!/usr/bin/python
#-*-coding:UTF-8
#filenameBF
importtime
"""
t="thisisabigapple,thisisabigapple,thisisabigapple,thisisabigapple."
p="apple"
"""
t="为什么叫向量空间模型呢?其实我们可以把每个词给看成一个维度,而词的频率看成其值(有向),即向量,这样每篇文章的词及其频率就构成了一个i维空间图,两个文档的相似度就是两个空间图的接近度。假设文章只有两维的话,那么空间图就可以画在一个平面直角坐标系当中,读者可以假想两篇只有两个词的文章画图进行理解。"
p="读者"
i=0
count=0
start=time.time()
while(i<=len(t)-len(p)):
j=0
while(t[i]==p[j]):
i=i+1
j=j+1
ifj==len(p):
break
elif(j==len(p)-1):
count=count+1
else:
i=i+1
j=0
printcount
printtime.time()-start
算法思想:目标串t与模式串p逐词比较,若对应位匹配,则进行下一位比较;若不相同,p右移1位,从p的第1位重新开始比较。
算法特点:整体移动方向:可认为在固定的情况下,p从左向右滑动;匹配比较时,从p的最左边位开始向右逐位与t串中对应位比较。p的滑动距离为1,这导致BF算法匹配效率低(相比其他算法,如:BM,KMP,滑动没有跳跃)。
该算法的时间复杂度为O(len(t)*len(p)),空间复杂度为O(len(t)+len(p))
以上内容为大家介绍了Python培训之怎么实现模式匹配,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注我们
最新内容
相关内容
python如何比较两个字符串是否相等
python如何比较两个字符串是否相等,培训,工作,字符串,两个,下面,以上,方法,更多,内容,python在实际的开发工作中,经常会遇到要判定两个字符串python代码如何在命令行运行
python代码如何在命令行运行,代码,培训,路径,空格,文件,下面,以上,目录,更多,内容,我们在编写python代码时,可以在交互模式下运行代码,也可以用python判断元素是否是字符串类型
python判断元素是否是字符串类型,培训,异常,类型,实例,字符串,数据类型,对象,元素,参数,序列,isinstance()是Python中的一个内建函数语法:isinpython判断字符串是否包含中文
python判断字符串是否包含中文,培训,检测,代码,字符串,中文,字符,范围,空格,原理,以上,原理:中文字符的编码范围是:\u4e00-\u9fff只要编码在python怎么写多行代码
python怎么写多行代码,代码,培训,情况,示例,字符串,斜杠,方法,行书,括号,有用,在写代码过程中,经常遇到一行代码很长的情况。为了让代码显得整python判断一个字符串是否包含另一
python判断一个字符串是否包含另一个字符串,培训,字符串,以上,方法,更多,内容,python判断一个字符串是否包含另一个字符串,常用的有两种方python判断两个字典是否相同
python判断两个字典是否相同,培训,字典,两个,相同点,做法,下面,之前,以上,解决方案,内部,python自带的数据结构dict非常好用,之前不知道怎么比python判断字符串是否为小数的方法
python判断字符串是否为小数的方法,培训,代码,合法,小数点,小数,整数,字符串,方法,右边,左边,python想判断一个字符串是不是一个合法的小数,但python判断字符是否为字母和数字
python判断字符是否为字母和数字,数字,培训,字母,字符串,字符,空格,方法,都会,分号,大小写,在使用python语言中的字符串方法时,可以使用它们判python字符串是对象吗
python字符串是对象吗,培训,名称,设计,对象,函数,变量,实体,参数,物件,字符串,python中一切都是对象在python中下列语句其实都是一个共同点:i=python怎么判断是否为空字符串
python怎么判断是否为空字符串,密码,培训,字符串,空格,字符,用户名,方法,两边,长度,全部,判断python中的一个字符串是否为空,可以使用如下方法python怎么给代码注释
python怎么给代码注释,代码,培训,注释,时间,项目,负担,冗余,重要性,开头,含义,注释的重要性如果我们是做独立项目,或者是唯一一位来查看自己编