1. 最长回文子串 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案。 示例 2: 输入: "cbbd" 输出: "bb"动态规划1、当 i 和 j 的差距等于小于 ...
分类:
其他好文 时间:
2020-07-21 14:24:39
阅读次数:
91
题目链接 #解题思路 马拉车当然是求最长回文既简单又快速的方法,不过这里因为要联系hash就没用马拉车了。设回文串的中心为a,b(奇回文a=b)先正着hash一遍,再倒着hash一遍,就能得到[a+len,a]和颠倒后的[b,b+len]两个子串哈希值,对比它们的哈希值就能判断两个子串是否相等,至于 ...
题目来源:leetcode647 回文子串 题目描述: 给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。 示例 1: 输入: "abc" 输出: 3 解释: 三个回文子串: "a", "b", "c". ...
分类:
其他好文 时间:
2020-07-18 19:57:25
阅读次数:
73
简述 Manacher算法,又称马拉车算法,它是用于求一个字符串的最长回文子串长度的算法,时间和空间复杂度为O(n)。 算法思想 求一个字符串的最长回文子串长度,我们如果用暴力来做,我们就要取出这个串的所有子串,然后判断这个子串是不是回文串,复杂度是n方的。 那么马拉车为何如此神奇能做到O(n)呢? ...
分类:
编程语言 时间:
2020-07-17 22:10:08
阅读次数:
116
题目描述 输入两个字符串A和B,合并成一个串C,属于A和B的字符在C中顺序保持不变。如"abc"和"xyz"可以被组合成"axbycz"或"abxcyz"等。 我们定义字符串的价值为其最长回文子串的长度(回文串表示从正反两边看完全一致的字符串,如"aba"和"xyyx")。 需要求出所有可能的C中价 ...
分类:
其他好文 时间:
2020-07-15 01:21:32
阅读次数:
53
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"来源:力扣(LeetCode)链接:https://leetcode-cn.c ...
分类:
其他好文 时间:
2020-06-27 11:39:29
阅读次数:
67
传统方法:遍历每一个字符,以该字符为中点向两边查找。 问题1: 由于回文串长度的奇偶性,需要对对称轴的位置进行分别判断,这种解法的时间复杂度是O(n^2)。 如aabb对称轴为ab之间,而ababa对称轴为中间的a 需要分别对两种情况进行判断 问题2:子串被重复多次访问,降低了时间效率。 Manac ...
分类:
其他好文 时间:
2020-06-24 15:50:57
阅读次数:
51
最长回文子串 暴力法 动态规划法 manacher算法 HDU 3068 ...
分类:
其他好文 时间:
2020-06-11 21:55:01
阅读次数:
59
题目链接 题解 回文自动机双向插入模版题,还需要动态维护回文子串个数,贴个板子 查看代码 #include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 1e6+5; const int mod ...
分类:
其他好文 时间:
2020-06-11 13:47:22
阅读次数:
55
来源 https://leetcode-cn.com/problems/longest-palindromic-substring 描述 给定一个字符串s,找到s中最长的回文子串。你可以假设s的最大长度为 1000。 示例 1: 输入: "babad" 输出: "bab" 注意: "aba" 也是一 ...
分类:
其他好文 时间:
2020-06-09 14:24:44
阅读次数:
52