![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
字符串
bryant-xw
Stay hungry, Stay foolish
展开
-
kmp的应用1——京东2018测试开发工程师笔试题
题目 题目描述:给定字符串s,求解含有两个s的最短字符串。例如"ababa"含有两个"aba" 解题思路: 利用kmp求解字符串的最后一个字符的下一个字符的next[] 处理成最大前缀和最大后缀能重复多少,向尾部添加从最大相同前缀后开始到结尾的子串 代码: #include<iostream> #include<cstdio> #in原创 2019-02-26 15:18:48 · 449 阅读 · 0 评论 -
kmp应用2
题目: 题目描述:判断一棵树T2是否是另一棵树T1的子树结构。如下图T2就是T1的一棵子树 *例子: T1 T2 * 1 3 * / \ / \ * 2 3 6 7 * / \ / \ * 4 5 6 7 *解法:kmp解法,二叉树的序列化,将树变为字符串,之后kmp判断即可 */ ...原创 2019-02-26 15:22:11 · 147 阅读 · 0 评论 -
字符串匹配算法——Sunday算法
实现原理: 给定的字符母串S(长度为n)和子串T(长度为m),从左到右开始匹配,之后出现不匹配的情况后,判断母串S参与匹配的最后一位的下一位字符,如果该字符出现在子串T中,选择子串中最右面出现的位置进行对齐;否则直接跳过该匹配区域。 平均时间复杂度是O(n),最坏降低到O(n*m) 详细的图解可以参考我看到的以下博客介绍 Sunday算法的图解教程 代码 #include<bits/st...原创 2019-03-04 15:06:24 · 670 阅读 · 0 评论 -
Manacher算法——用于求取最长回文子串
回文串的概念:正序和逆序是一致的,比如字符串abcdcba 既然是字符串就会存在奇数长度和偶数长度的回文串 奇回文串:abcdcba 偶回文串:123321 实现方法: (1)暴力的扩展——时间复杂度O(n^2) 遍历每一个字符,从这个字符开始向两边扩展并且比较是否一致,记录每个字符可以遍历到的最大长度。比如abcdcba,当遍历到字符d的时候就是最长的回文串。 但是没有办法解决偶数长度的...原创 2019-03-11 15:04:44 · 136 阅读 · 0 评论 -
Manacher应用1
题目描述 如何在一个给定字符串str1,要求在末尾添加使字符str1成为最短的回文串str2 如 str1 = "abc12321" 则 str2 = "abc12321cba" 解题思路: 必须包含最后一个字符的回文串,之后将回文串前面的逆序添加到末尾即可 将manacher算法的改写 当manacher算法第一次到达最后一个字符时,停止,L,R,C都确定,将L之前的逆序添加到末尾o...原创 2019-03-24 20:38:16 · 133 阅读 · 0 评论