给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。 返回 s 所有可能的分割方案。 代码: class Solution: def __init__(self): self.res = [] def partition(self, s: str) -> List[List[str]] ...
分类:
编程语言 时间:
2020-03-08 19:19:36
阅读次数:
77
题目链接:https://vjudge.net/problem/HDU-4513 题意:给定一个整型数组,求最大回文串,而且该回文串满足回文串中心的左边递增,右边递减。 思路: Manacher算法简单应用。 先用manacher算法求出p数组(p[i]表示以i为回文串中心的回文串最长是多少),然后 ...
分类:
其他好文 时间:
2020-03-04 21:01:05
阅读次数:
61
传送门 这道题显然可以用PAM做出来。 PAM可以算出以字符串的第ii个字符为结尾的回文子串的个数。我们将其存到一个数组l[n],再求一个前缀和就可以把字符串的前i个字符的前缀有多少个回文子串求出来。 然后,我们将PAM清空,倒着做一遍,就可以求出以第i个字符为左端点的回文子串个数r[i]。与它不相 ...
分类:
其他好文 时间:
2020-03-02 12:50:53
阅读次数:
54
题:https://vjudge.net/problem/URAL-1960 题意:给你一个长度为 n 的字符串 s,下标从 1 开始; 输出 n 个数,第 i 个数表示 1~i 内有多少个本质不同的回文串; #include<iostream> #include<cstdio> #include< ...
分类:
其他好文 时间:
2020-02-29 22:14:19
阅读次数:
99
B. Longest Palindrome "原题" Problem Restatement 给出n个,长度为m的字符串。$(1≤??≤100,1≤m≤50) $ 用部分或全部字符串,在一定的顺序拼接下,拼出最长的回文串。 Solution 数据小,暴力贪心即可。 对于每个串寻找是否存在其共轭串(即 ...
分类:
其他好文 时间:
2020-02-25 09:52:21
阅读次数:
57
考虑将原串反向后接在原串后面,中间用一个不在字符集里的字符隔开,那么我们可以对前半部分字符串的每个字符与后半部分字符串的对应字符求最长公共前缀,即为答案。考虑以第i个字符为回文串的中心/对称轴右侧字符(在前面一半字符串相当于向右走,在后面那个字符串中相当于向左走),则回文串分别包含奇数/偶数个字符。 ...
分类:
其他好文 时间:
2020-02-22 00:45:20
阅读次数:
92
给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。 示例 1: 输入: "(()"输出: 2解释: 最长有效括号子串为 "()"示例 2: 输入: ")()())"输出: 4解释: 最长有效括号子串为 "()()" 解:这道题和那道最长回文串有点像,状态转移方程为 f ...
分类:
其他好文 时间:
2020-02-20 20:01:06
阅读次数:
59
如果自己是回文串可以做中心 如果一个串和另一个串的转置相等则可以凑一对 优先配对 ...
分类:
其他好文 时间:
2020-02-17 15:56:55
阅读次数:
105
我们之前有两篇文章写了回文串和回文序列相关的问题。 寻找 回文串的核心思想是从中心向两端扩展: 这道题的关键在于,单链表无法倒着遍历,无法使用双指针技巧。那么最简单的办法就是,把原始链表反转存入一条新的链表,然后比较这两条链表是否相同。关于如何反转链表,可以参见前文「递归操作链表」。 其实, 借助二 ...
分类:
其他好文 时间:
2020-02-17 12:20:53
阅读次数:
64
回文串是面试常常遇到的问题(虽然问题本身没啥意义),本文就告诉你回文串问题的核心思想是什么。 首先,明确一下什: 回文串就是正着读和反着读都一样的字符串 。 比如说字符串 和 都是回文串,因为它们对称,反过来还是和本身一样。反之,字符串 就不是回文串。 可以看到回文串的的长度可能是奇数,也可能是偶数 ...
分类:
其他好文 时间:
2020-02-17 12:08:12
阅读次数:
57