给定字符串S, 找到其子串中最长的回文字符串.反转法: 反转S为S', 找到其中的最长公共子串s, 并确认子串s在S中的下标iS与在S'中的下标iS'是否满足式: length(S) =iS +iS' + length(s). 如果满足则s为搜索结果, 如果不满足我们就继续搜索.DP解法:定义 P[...
分类:
其他好文 时间:
2014-10-24 00:13:43
阅读次数:
231
【题目】
将一个很长的字符串,分割成一段一段的子字符串,子字符串都是回文字符串。有回文字符串就输出最长的,没有回文就输出一个一个的字符。
例如:habbafgh
输出h,abba,f,g,h。
【思路一】
基于“最长回文子串算法”求出当前字符串的最长回文子串,就可以分成3部分
a、最长回文子串left部分
b、最长回文子串
c、最长回文子串right部分
然后分别...
分类:
其他好文 时间:
2014-10-22 15:55:45
阅读次数:
231
回文数字。玩过回文字符串之后在玩一个回文数字,相比于最长回文字符串的巧妙,这道题目唯一值得称道的地方可能就是那句Do this without extra space,可以说这是这道题目明面上给出的唯一束缚,当然如果要是看了提示的话,会发现输入的整数是有负整数的可能。也就是说还要处理负数的问题,在这...
分类:
其他好文 时间:
2014-10-21 00:47:55
阅读次数:
204
Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.For example, "race a car"isnota palindro....
分类:
其他好文 时间:
2014-10-17 06:26:33
阅读次数:
239
初看好简单 一开始调试着一直re 后来也不知道怎么就对了 但是还有一些bug存在 ,
这道题的打印路径和light oj An Easy LCS(ps:点击打开链接)一样
但是只改一下会Tle 因为(1000*1000*1000)好大
但是把存储的字符串改为string 定义的就过了
但是还是有一点有点难受(下面会说出)
我也是醉了
#include
#include...
分类:
其他好文 时间:
2014-10-07 02:36:42
阅读次数:
405
原理讲的清晰:Manacher's ALGORITHM: O(n)时间求字符串的最长回文子串注意:①动态生命P[]和newStr数组后,不要忘记delete[] //其实这是基本的编码习惯②最终返回结果是P[i]-1下面是自己写的Manacher函数int manacher(char *src){ ...
分类:
其他好文 时间:
2014-09-20 19:44:09
阅读次数:
213
回文字符串
时间限制:3000 ms | 内存限制:65535 KB
难度:4
描述 所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba"。当然,我们给你的问题不会再简单到判断一个字符串是不是回文字符串。现在要求你,给你一个字符串,可在任意位置添加字符,最少再添加几个字符,可以使这个字符串成为回文字符串。
输入第一行给出整数N(0
接下来的N行,每行...
分类:
其他好文 时间:
2014-09-06 09:45:53
阅读次数:
252
比较水的动态规划
dp[i][j] 将原串 i ~ j 之内的字符转化为回文字符所需要的最小操作次数
其中删除操作和添加操作本质上是一样的。
三个状态转移方程:
dp[i][j] = min(dp[i][j] ,dp[i + 1][j]);
dp[i][j] = min(dp[i][j] ,dp[i + 1][j - 1]);
dp[i][j] = min(dp[i][j] ,dp...
分类:
其他好文 时间:
2014-09-04 19:05:40
阅读次数:
189
??
题意 给一个字符串 判定其是否为回文串和镜像串 回文串很好判断 镜像串对于每一个字符用数组保存它的镜像字符就行了 没有的就是空格
注意若字符串长度为奇数 中间那个字母必须是对称的才是镜像串
#include
#include
#include
const int N = 35;
int l;
char s[N], mc[] = "A 3 HIL JM O ...
分类:
其他好文 时间:
2014-08-30 10:00:09
阅读次数:
179