#牛客在线求职答疑中心# 知模式串为“aaabab”,主串为“aaabbaabaaababb”,若采用KMP算法进行模式匹
全部评论
知模式串为“aaabab”,主串为“aaabbaabaaababb”,使用KMP算法(Knuth-Morris-Pratt)进行模式匹配时,我们首先需要构建一个部分匹配表(也称为“失败函数”或“next数组”),用于在不匹配时确定模式串的下一个匹配位置。 以下是构建部分匹配表的步骤: 1. 初始化部分匹配表,对于模式串“aaabab”,部分匹配表如下: - a: 0 - aa: 0 - aaab: 0 - aaaba: 1 - aaabab: 2 2. 接下来,我们使用这个表来进行模式匹配。我们从主串的起始位置开始,尝试将模式串与主串进行匹配。 3. 当我们发现不匹配时,我们查看部分匹配表来确定模式串的下一个匹配位置,而不是从模式串的开始重新匹配。 以下是匹配过程: - 从主串的第1个字符开始,我们发现“a”与模式串的第一个字符匹配,继续比较。 - 接下来,“aa”与模式串的前两个字符匹配,继续比较。 - 然后,“aaab”与模式串的前三个字符匹配,继续比较。 - 接着,“aaaba”与模式串的前四个字符匹配,但第五个字符不匹配。根据部分匹配表,我们知道下一个匹配位置应该是从模式串的第二个字符开始,即“aab”。 - 继续匹配,我们发现“aab”与主串的第五、六、七个字符匹配,但第八个字符不匹配。根据部分匹配表,下一个匹配位置是“ab”。 - 继续匹配,我们发现“ab”与主串的第九、十个字符匹配,但第十一个字符不匹配。根据部分匹配表,下一个匹配位置是“b”。 - 继续匹配,我们发现“b”与主串的第十二个字符匹配,但第十三个字符不匹配。由于模式串已经完全匹配过一次,我们可以直接跳过前面的匹配,从模式串的第二个字符“a”开始匹配。 - 继续匹配,我们发现“a”与主串的第十四个字符匹配,继续比较。 - 接下来,“aa”与模式串的前两个字符匹配,继续比较。 - 然后,“aaab”与模式串的前三个字符匹配,继续比较。 - 接着,“aaaba”与模式串的前四个字符匹配,但第五个字符不匹配。根据部分匹配表,下一个匹配位置是“aab”。 - 最后,我们发现模式串“aaabab”在主串“aaabbaabaaababb”中的位置是从第七个字符开始的。 使用KMP算法,我们可以高效地找到模式串在主串中的位置,避免了不必要的重复比较。
点赞 回复 分享
发布于 11-05 00:52 AI生成

相关推荐

面经:首先自我介绍,然后由面试官提问, 专业方面大部分是模电的基础,再问一些关于你生活的事情,以及你的工作意愿,最后再问有没有想要问的了。问题整理:场效应管的结构和用处二极管的组成和用途三极管的组成和用途有什么兴趣爱好愿不愿来华硕工作毕业设计的一些设计运用什么原理说说大学期间的一件付出了努力但没有得到相应回报的事?大学做的最有成就感的事?大学遇到过的最有挫折感的事?如果工作以后,离职可能是什么原因?总之面试官没有多严厉,还是让你别紧张,全程比较轻松。华硕ASUS 2025届校园招聘进行中【关于华硕】全球领先的3C解决方案提供商之一,产品线完整覆盖至笔记本电脑、主板、显卡、服务器等全线3C产品。华硕拥有遍布全球20多个国家和地区的分支机构,以及十万名员工,已成为年营业额超过165亿美元的信息产业巨擘【招聘岗位】主板硬件研发、商用电脑硬件研发、海外硬件研发、硬件工程师、C/C++软件工程师、Java开发工程师 (最多可投递3个岗位,可同时安排笔/面试)【工作城市】苏州【福利待遇】双休,六险二金,带薪年假/事假/病假/年度体检/节日福利等,专业技术培养体系【内推链接】https://asustek.zhiye.com/campus/jobs?shareId=5262df38-cd6f-4f1a-bf59-1dd761044408&shareSource=2【内推码】ESKPGJ(简历优先筛选,后续有疑问/流程问题欢迎联系)大家投递完可以在评论区打上姓名缩写+岗位,我来确认有没有内推成功喽
华硕科技(苏州)有限公司
|
校招
|
10个岗位
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-02 12:41
美团 运营 15×15.5 (0-6) 本科其他
点赞 评论 收藏
分享
C++17了解什么新特性智能指针shared_ptr内存分布为什么make_shared比直接构造更快weak_ptr底层缓存一致性多线程编程,用过哪些用过哪些内存序无锁队列,实现细节原子变量,底层实现volatile有什么用,和内存屏障区别是什么SO_REUSEADDR套接字选项SO_REUSEPORT套接字选项TIME_WAIT怎么优化服务端time_wait过多怎么办介绍IO多路复用为什么要有IO多路复用项目同步RPC怎么改异步为什么网络库是异步的,RPC是同步的定时器怎么做的性能优化 哪里可以优化介绍RAFT算法raft各种条件下如何处理(这一块差点裂开)raft优化场景题:游戏里面英雄的皮肤,节约内存如何设计反问:1.游戏后台和互联网后台最大的区别是什么2.表现如何(这种场合不方便透露,会有HR联系)TOP游戏外企-FunPlus2025届秋季校园招聘【公司简介】FunPlus于2010年在硅谷创立,以“用最好的产品为全球玩家带米哈游来极致的娱乐享受”为使命,致力于用游戏及娱乐产品连接全球用户、连接合作伙伴、连接多元文化,是全球最顶级的移动游戏公司之一【招聘岗位】技术类、产品策划类、美术类、发行类、运营类、用研/行研类、项目管理类、职能类【工作城市】北京、上海、杭州、广州【薪酬待遇】行业头部极具竞争力的薪资+丰富的员工福利【投递链接】https://app.mokahr.com/m/campus_apply/funplus01/147931?recommendCode=DSX76vas&hash=%23%2Fjobs#/jobs【内推码】DSX76vas(简历优先筛选,后续有疑问或者流程问题欢迎随时联系)大家投递完可以在评论区打上姓名缩写+岗位,我来确认有没有内推成功喽
FUNPLUS
|
校招
|
超多精选岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务