当前位置:首页 > 实用技巧 >

如何匹配某字符串(字符串匹配怎么输入)

来源:原点资讯(www.yd166.com)时间:2024-02-03 04:14:10作者:YD166手机阅读>>


2.如果不存在和已匹配后缀完全匹配的子串,则在已匹配后缀中找到最长的真后缀,且是模式串的前缀(t[m-s…m]=P[0…s])

如何匹配某字符串,字符串匹配怎么输入(25)


3.如果完全不存在和好后缀匹配的子串,则右移整个模式串。

BM算法在实际匹配时,考虑上面两种策略,当匹配失败发生时,会选择能够移动的最大的距离,来去移动模式串,从而加速匹配。实际情况,失配字符移动策略已经能很好的加速匹配过程,因为模式串本身字符数量是要少于文本串的,Quick Search algorithm(Sunday)正是利用这一策略的算法(有些许不同),或者说是一种简化版的BM算法。

3.2 Sunday

Sunday 算法是 Daniel M.Sunday 于 1990 年提出的字符串模式匹配。其效率在匹配随机的字符串时比其他匹配算法还要更快。Sunday 算法的实现可比 KMP,BM 的实现容易的多。

Sunday算法思想跟BM算法很相似,在匹配失败时关注的是文本串中参加匹配的最末位字符的下一位字符。如果该字符没有在模式串中出现则直接跳过,即移动步长= 模式串长度 1;否则,同BM算法一样其移动步长=模式串中最右端的该字符到末尾的距离 1。

文本串T中字符“c”和模式串中的字符“d”不匹配。我们观察文本串参与匹配的末位的下一个字符“e”,可以知道“e”没有出现在模式串中。于是移动模式串长度 1。

如何匹配某字符串,字符串匹配怎么输入(26)


继续匹配,我们发现文本串T中字符“a”和模式串中的字符“d”不匹配。我们观察文本串参与匹配的末位的下一个字符“a”,可以知道“a”出现在模式串中(最右的位置)。于是移动模式串该字符到末尾的距离 1。

如何匹配某字符串,字符串匹配怎么输入(27)

3.3 Rabin-Karp

Rabin-Karp 算法,由 Richard M. Karp 和 Michael O. Rabin 在 1987 年发表,它也是用来解决多模式串匹配问题的。该算法实现方式与上述的字符匹配不同,首先是计算两个字符串的哈希值,然后通过比较这两个哈希值的大小来判断是否出现匹配。

为了帮助更好的解决字符串匹配问题,哈希函数应该具有以下属性:

1.高效的、可计算的

2.更好的识别字符串

3.在计算hash(y[j 1 ..j m])应该可以容易的从hash(y[j..j m-1])和y[j m]中得到结果,即hash(y[j 1 ..j m])=rehash(y[j],y[j m],hash(y[j..j m-1])

我们定义hash函数如下:

hash(w[0 ..m-1])=(w[0]*2^m-1 w[1]*2^m-2 ··· w[m-1]*2^0) mod q

由于计算的hash值可能会很大,所以需要取模操作,q最好选取一个比较大的数,且是一个质数,w[i]表示y[i]对应的ASCII码。

hash(w[1..m])=rehash(w[0],w[m],hash(w[0..m-1]))

rehash(a,b,h)= ((h-a*2^m-1)*2 b) mod q

匹配过程中,不断滑动窗口来计算文本串的hash值和模式串的是否相同,当出现相同时,还需要再检查一遍字符串是否真正相同,因为会出现哈希碰撞的情况。

如何匹配某字符串,字符串匹配怎么输入(28)

栏目热文

问号可以跟几个字符匹配(匹配字符正确使用方法)

问号可以跟几个字符匹配(匹配字符正确使用方法)

今天我们来聊聊Excel中模糊匹配的问题,所谓的模糊匹配就是通过一两个关键字或者关键词来找出它对应的结果。但是Excel...

2024-02-03 03:51:31查看全文 >>

匹配一串字符的命令(字符串匹配怎么输入)

匹配一串字符的命令(字符串匹配怎么输入)

大家好,我是老盖,首先感谢观看本文,本篇文章做的有视频,视频讲述的比较详细,也可以看我发布的视频。今天我们学习dos中的...

2024-02-03 03:56:30查看全文 >>

字符数据快速匹配方法(字符串模糊匹配)

字符数据快速匹配方法(字符串模糊匹配)

Excel对大小写不怎么敏感,当然对于我们总是使用汉字来查询,也经常会忽略这个问题,毕竟大小写数要是针对英文字母,在实际...

2024-02-03 04:10:35查看全文 >>

多个字符匹配方法大全(字符串匹配怎么输入)

多个字符匹配方法大全(字符串匹配怎么输入)

1. 匹配多个字符代码功能*匹配前一个字符出现0次或者无限次,即可有可无 匹配前一个字符出现1次或者无限次,即至少有1次...

2024-02-03 04:09:57查看全文 >>

超过15个字符怎么匹配(怎么把含有特定字符的找出来)

超过15个字符怎么匹配(怎么把含有特定字符的找出来)

20230528星期日:使用 countif 统计,如果单元格数据超过 15 位,那么需要在公式的后面加上 &“*”,...

2024-02-03 03:49:01查看全文 >>

又是一年清明节网络扫墓词美篇(清明节扫墓文案朋友圈)

又是一年清明节网络扫墓词美篇(清明节扫墓文案朋友圈)

网民朋友们:时值一年春草绿,又是一年清明时。在这慎终追远、缅怀先人、寄托哀思的时节,为传承孝道家风,倡导绿色祭祀、文明祭...

2024-02-03 03:59:24查看全文 >>

清明民间扫墓倡议书(清明扫墓文明祭祀倡议书)

清明民间扫墓倡议书(清明扫墓文明祭祀倡议书)

广大市民朋友们:序春草绿,又到清明。清明节是我们缅怀故人、追思先烈、寄托哀思的传统节日,为弘扬中华民族传统美德,倡导文明...

2024-02-03 04:01:07查看全文 >>

清明节在网上扫墓感受(清明网上扫墓寄语)

清明节在网上扫墓感受(清明网上扫墓寄语)

在网上缅怀,就不得不提遥望天堂云缅怀了。因时而变,不少人开始关心环保和文明祭祀。清明节,作为一个实实在在重要的传统意义上...

2024-02-03 04:04:14查看全文 >>

清明时节扫墓温馨提示(清明扫墓10件事一定要知道)

清明时节扫墓温馨提示(清明扫墓10件事一定要知道)

清明节即将来临,回乡祭扫、焚香烧纸等活动频繁,发生火灾的因素增多。据广州消防统计,全市近五年清明节期间共发生火灾322起...

2024-02-03 04:28:22查看全文 >>

清明节扫墓随感(清明节扫墓的过程和感受)

清明节扫墓随感(清明节扫墓的过程和感受)

今年清明节4月2号从武汉出发,前一天我买了我妈妈喜欢吃的糕点,小麻花,各种水果,因为很有几年没回去,不知家里有没有?先准...

2024-02-03 04:30:57查看全文 >>

文档排行