串中定位首次出现位置用什么算法
首先我们需要了解串的模式算法目的:确定主串中所含子串第一次出现的位置(定位);常见的算法种类: BF算法(又称古典的、经典的、朴素的、穷举的),KMP算法(特点:速度快)。网上有很多帖子,博客写的都特别好,这篇文章也是对自己的一个总结。
2.BF算法
BF算法设计思想:
将主串的第pos个字符和模式的第一个字符比较
若相等,继续逐个比较后续字符;
若不等,从主串的下一字符起,重新与模式的第一个字符比较。
直到主串的一个连续子串字符序列与模式相等 。
返回值为S中与T匹配的子序列第一个字符的序号,即匹配成功。
否则,匹配失败,返回值 0
1.举例:
假设现在我们面临这样一个问题:有一个文本串S,和一个模式串P,现在要查找P在S中的位置,怎么查找呢?
如果用暴力匹配的思路,并假设现在文本串S匹配到 i 位置,模式串P匹配到 j 位置,则有:
如果当前字符匹配成功(即S[i] == P[j]),则i++,j++,继续匹配下一个字符;
如果失配(即S[i]! = P[j]),令i = i - (j - 1) (表示主串的位置回到当前的下一个位置),j = 0。相当于每次匹配失败时,i 回溯,j 被置为0。
猜你喜欢内容
-
药房装修有什么要求吗
开药店装修时需要注意以下要求:特色突出:店面设计应有明显特色,主题鲜明,以吸引顾客和路人的注意。...
-
装修镜子怎么买好看
购买装修镜子时,可以参考以下步骤和建议:根据镜子的使用场景选择合适的类型,例如浴室、卧室、客厅或...
-
藏式装修木板怎么选好
选择藏式装修木板时,可以参考以下要点:质量好的板材表面应光滑平整,无缺陷。侧面看板芯厚度是否均匀...
-
卧室太小怎么装修实例
针对卧室太小的情况,以下是一些实用的装修实例和建议:案例:面积约6.5平方米,采用定制榻榻米床的设计...
-
复式装修怎么除甲醛
复式装修后除甲醛可以采取以下几种方法:活性炭和竹炭具有较强的吸附能力,可以放置在室内各个角落,如...
-
淘宝店铺装修用什么颜色
淘宝店铺装修时,选择合适的颜色可以显著提升店铺的吸引力和用户体验。以下是一些推荐的颜色及其适用场...
-
院里有柱子怎么装修
针对院子里有柱子的装修问题,以下是一些建议:隐藏式设计:将柱子包装成衣柜或其他功能型房间,增加收...
-
大白墙怎么装修耐脏
要使大白墙更耐脏,可以采取以下几种装修策略:根据房间的光线情况选择色调。自然光充足的房间适合冷白...
-
开养生馆注意什么装修
开养生馆时,装修是一个非常重要的环节,它不仅关系到顾客的第一印象,还直接影响到养生馆的整体氛围和...
-
法院野蛮装修怎么处理
面对野蛮装修问题,可以采取以下几种处理方式:发生纠纷时,首先尝试与对方进行沟通协商,寻求双方都能...










