比较水的动态规划
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
关于字符串的子串问题,我们经常需要利用的是已经访问的部分的信息,来降低复杂度,和提高效率;在求最长回文子串的问题中,Manacher's algorithm提供了一种很好的机制,虽然部分地方不太容易理解先说下核心的思想:先对原字符串进行预处理,将字符串"abc"转换为"$#a#b#c#"的形式,既避...
分类:
其他好文 时间:
2014-09-02 22:52:05
阅读次数:
230
最长回文子串
时间限制:1000 ms | 内存限制:65535 KB
难度:4
描述 输入一个字符串,求出其中最长的回文子串。子串的含义是:在原串连续出现的字符串片段。回文的含义是:正着看和倒着看是相同的,如abba和abbebba。在判断是要求忽略所有的标点和空格,且忽略大小写,但输出时按原样输出(首尾不要输出多余的字符串)。输入字符串长度大于等于1小于等于5000,且单独占一行...
分类:
其他好文 时间:
2014-09-02 12:28:54
阅读次数:
158
题目链接:uva 11475 - Extend to Palindrome
题目大意:给定一个字符串,输出最少需要添加多少个字符使得字符串变成回文串。
解题思路:以字符串的转置做KMP,然后用原串匹配即可,最后匹配长度即为重复长度。
#include
#include
#include
using namespace std;
const int maxn = 1e5+5;
...
分类:
其他好文 时间:
2014-09-01 22:45:42
阅读次数:
290
//$slice操作符返回文档中指定数组的内部值//查询出Jim书架中第2~4本书db.persons.find({name:"jim"},{books:{"$slice":[1,3]}})//查询出最后一本书db.persons.find({name:"jim"},{books:{"$slice"...
分类:
数据库 时间:
2014-09-01 17:11:53
阅读次数:
282
随机输入一个数,判断它是不是对称数(回文数)(如3,121,12321,45254)。不能用字符串库函数 1 bool Symmetry(int input) 2 { 3 int number = input; 4 int reverse = 0; 5 while (numb...
分类:
其他好文 时间:
2014-09-01 10:33:52
阅读次数:
230
A题给一个由a和b两种类型的字符组成的字符串,每次可以从中选取任意长度的回文子序列(不一定连续)并删除。问最少需要几次能将整个字符串为空。思路:如果本身是个回文串,那么只需要一次,否则需要两次(第一次选全部的a,第二次全部选b)。Accepted Code: 1 def is_palidrome(s...
分类:
其他好文 时间:
2014-08-31 22:38:21
阅读次数:
261
模板 上篇博文学习了动态视图,但是,视图中返回文本的方式有点特别。 也就是说,HTML被直接硬编码在 Python 代码之中。1 def current_datetime(request):2 now = datetime.datetime.now()3 html = "It is...
分类:
编程语言 时间:
2014-08-31 13:03:11
阅读次数:
243
??
题意 给一个字符串 判定其是否为回文串和镜像串 回文串很好判断 镜像串对于每一个字符用数组保存它的镜像字符就行了 没有的就是空格
注意若字符串长度为奇数 中间那个字母必须是对称的才是镜像串
#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