很经典的题目,求字符串中的最长回文子串。
(1)最朴素的解法 ---暴力 复杂度O(N³)
这也是最容易想到的方法,最外层循环枚举起点i,第二层循环从i+1开始向后枚举,第三层判断是不是回文串。最后取最长子串的返回。
代码比较简单,这里没有列出。
(2)中心扩展法。复杂度O(N²)
枚举每一个字符作为中心点向左右扩展。但是这里要注意,对于每一次扩展要分奇偶两种情况。否则可能会漏掉情况。
...
分类:
其他好文 时间:
2015-07-16 09:52:23
阅读次数:
141
题目描述:
给定半回文子串的定义,现给你一个串S和一个整数K,输出S所有子串中且是半回文排名第K的子串,半回文子串按照字典序升序顺序。(len(S)
分析:
首先,定义dp[i][j]表示S[i....j]是否为半回文子串,可以在的时间内求出所有的状态。现在,需要计算排名第K的半回文子串,我们可以通过将所有的半回文子串插入到一颗字典树中...
分类:
其他好文 时间:
2015-07-08 14:41:07
阅读次数:
138
题意是寻找一个字符串的最大回文字串,最简单的是n3方的算法,由于字符串最大长度为1000,所以这个方法很危险而且不科学。紧接着想到的是一个n方的算法:回文子串是从中间向两边产生的,那么对于每个字符考察这个字符往外的所有可能不就可以找到以这个字符为中心的最长回文子串了吗?当然要考虑偶数的情况,即那个中...
分类:
其他好文 时间:
2015-07-06 15:51:01
阅读次数:
106
算法思想:
设有字符串s[] = "121"
第一步:通过在每个字符左右都添加一个特殊字符,把奇数长度和偶数长度的字符串都转化成奇数(例如. "121" 加上特殊字符后变成"#1#2#1" ),同时也可在开头再加一个特殊字符,以便于忽略越界问题(如上例"121"变成"$#1#2#1#" 此时开头的特殊字符$和字符串末尾的\0与此串中其他字符都不同,即可忽略越界问题),此时字符串变成
s[]...
分类:
编程语言 时间:
2015-07-06 01:28:25
阅读次数:
155
Description考虑一个只包含小写拉丁字母的字符串s。我们定义s的一个子串t的“出现值”为t在s中的出现次数乘以t的长度。请你求出s的所有回文子串中的最大出现值。Input输入只有一行,为一个只包含小写字母(a -z)的非空字符串s。Output输出一个整数,为逝查回文子串的最大出现值。Sam...
Description顺序和逆序读起来完全一样的串叫做回文串。比如acbca是回文串,而abc不是(abc的顺序为“abc”,逆序为“cba”,不相同)。输入长度为n的串S,求S的最长双回文子串T,即可将T分为两部分X,Y,(|X|,|Y|≥1)且X和Y都是回文串。Input一行由小写英文字母组成的...
分类:
其他好文 时间:
2015-07-04 12:34:28
阅读次数:
122
首先,在谈到Manacher算法之前,我们先来看一个小问题:给定一个字符串S,求该字符串的最长回文子串的长度.对于该问题的求解,网上解法颇多,时间复杂度也不尽相同,这里列述几种常见的解法.
解法一
通过枚举S的子串,然后判断该字串是否为回文,由于S的子串个数大约为,加上每次判断需要的时间,所以总的时间复杂度为,空间复杂度为.
bool check(string &S, int l...
分类:
编程语言 时间:
2015-07-03 23:30:03
阅读次数:
179
试题描述输入一个字符串S,输出S的最长连续回文子串长度。输入输入一个字符串S。输出输出S的最长连续回文子串长度输入示例abacbbc输出示例4其他说明1#include#include#include#include#define rep(s,t) for(int i=s;ii) p[i]=min(...
分类:
其他好文 时间:
2015-07-03 11:55:32
阅读次数:
115
题意简述给定一个字符串(长度不超过5000 且只包含a、b)求满足如下所示的半回文子串中字典序第k大的子串ti?=?t|t|?-?i?+?1(|t|为字符串长度)) -------------------------------------------------------------------...
分类:
其他好文 时间:
2015-07-01 13:50:37
阅读次数:
160
最长回文子串
题意:给定一个字符串s,找出该字符串中最长的回文子串。
字符串如“abcba”,”abbbba”这样呈中心对称的子串称为回文串。该题目是一个老题了,有多种不同的解法,我整理一下方便以后查询。
暴力动态规划法
这个方法是我们看到这个题目后最容易想到的方法,暴力搜索所有的子串,判断每个子串是否是回文串;我们用一个二维空间记录已计算过的子串是否为回文串,这样之后针对每个新子串进...
分类:
其他好文 时间:
2015-06-30 20:27:11
阅读次数:
120