字符串
文章平均质量分 90
Miserable_ccf
Stay hungry ,stay foolish
展开
-
UN快乐暑假(五)—— (自闭多校)扩展KMP
又双叒叕在多校get新算法 扩展KMP (以下转载自博客:https://blog.csdn.net/dyx404514/article/details/41831947) 拓展kmp是对KMP算法的扩展,它解决如下问题: 定义母串S,和字串T,设S的长度为n,T的长度为m,求T与S的每一个后缀的最长公共前缀,也就是说,设extend数组,extend[i]表示T与S[i,n-1]的最长公共前缀...转载 2019-08-05 22:53:04 · 119 阅读 · 0 评论 -
『笔记备忘』串的模式匹配算法——KMP算法
『写在前面』 今天又是连着上一下午的数据结构,ORZ。讲了Knuth,Morris,Pratt三位大牛写的惊天算法。但是听的糊里糊涂,所以今天来整理一下。 『KMP算法原理』 KMP算法其实是对经典BF算法的一种优化,利用了之前比较过的“已知信息”,跳过了重复的比较,加快了算法效率。 先看BF算法 BF算法是一种暴力求解的方式,是拿子串从头挨个和主串比较 ,当串匹配成功就跳出循环...原创 2018-09-29 22:01:40 · 334 阅读 · 1 评论 -
解决最长回文子串问题——Manacher算法
问题描述: 输入一个字符串,求出其中最大的回文子串。子串的含义是:在原串中连续出现的字符串片段。回文的含义是:正着遍历和倒着遍历得到的序列相同,如madam,lol,oppo,zz。 计算字符串的最长回文字串最简单的算法就是枚举该字符串的每一个子串,并且判断这个子串是否为回文串,这个算法的时间复杂度为O(n^3)的,而稍微优化的一个算法是枚举回文串的中点,这里要分为两种情况,一种是回文串长...原创 2019-03-03 19:53:04 · 1118 阅读 · 0 评论 -
最长公共子串问题——矩阵法求解
最大公共子串长度问题就是: 求两个串的所有子串中能够匹配上的最大长度是多少。 比如:"abcdkkk" 和 "baabcdadabc", 可以找到的最长的公共子串是"abcd",所以最大公共子串长度为4。 『算法思路』 1、把两个字符串分别以行和列组成一个二维矩阵。 2、比较二维矩阵中每个点对应行列字符中否相等,相等的话值设置为1,否则设置为0。 3、通过查找出值为1的最长对角线...原创 2019-03-03 21:07:46 · 1446 阅读 · 1 评论