/*
* POJ_1159.cpp
*
* Created on: 2013年10月29日
* Author: Administrator
*/ #include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <cstring> using namespace std; const int maxn = 5005;
char str1[maxn],str2[maxn];
int maxlen[2][maxn]; int main(){
int n;
while(cin >> n ){
memset(maxlen,0,sizeof(maxlen)); scanf("%s",str1); int i,j;
int len = strlen(str1);
for(i = 0 ; i < len ; ++i){
str2[i] = str1[n-1 -i];//str2为str1的逆序串
} int e = 0;
for(i = 0 ; i < n ; ++i){//求公共子序列的最大长度
e = 1- e;//这里使用了滚动数组,因为直接开maxlen[5000][5000]会内存溢出...
for(j = 0 ; j < n ; ++j){
if(str1[i] == str2[j]){
maxlen[e][j] = maxlen[1-e][j-1] + 1;
}else{
maxlen[e][j] = max(maxlen[1-e][j],maxlen[e][j-1]);
}
}
} cout<<n - maxlen[e][n-1]<<endl;
} return 0;
}

(字符串的处理4.7.16)POJ 1159 Palindrome(让一个字符串变成回文串需要插入多少个字符...先逆序,在减去公共子序列的最大长度即可)的更多相关文章

  1. 字符串(马拉车算法,后缀数组,稀疏表):BZOJ 3676 [Apio2014]回文串

    Description 考虑一个只包含小写拉丁字母的字符串s.我们定义s的一个子串t的“出 现值”为t在s中的出现次数乘以t的长度.请你求出s的所有回文子串中的最 大出现值. Input 输入只有一行 ...

  2. 最长(大)回文串的查找(字符串中找出最长的回文串)PHP实现

    首先还是先解释一下什么是回文串:就是从左到右或者从右到左读,都是同样的字符串.比如:上海自来水来自海上,bob等等. 那么什么又是找出最长回文串呢? 例如:字符串abcdefedcfggggggfc, ...

  3. poj 1159 Palindrome - 动态规划

    A palindrome is a symmetrical string, that is, a string read identically from left to right as well ...

  4. POJ 1159 Palindrome 最长公共子序列的问题

    Description A palindrome is a symmetrical string, that is, a string read identically from left to ri ...

  5. 动态规划+滚动数组 -- POJ 1159 Palindrome

    给一字符串,问最少加几个字符能够让它成为回文串. 比方 Ab3bd 最少须要两个字符能够成为回文串 dAb3bAd 思路: 动态规划 DP[i][j] 意味着从 i 到 j 这段字符变为回文串最少要几 ...

  6. POJ 1159 Palindrome(区间DP/最长公共子序列+滚动数组)

    Palindrome Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 56150   Accepted: 19398 Desc ...

  7. POJ 1159 Palindrome(字符串变回文:LCS)

    POJ 1159 Palindrome(字符串变回文:LCS) id=1159">http://poj.org/problem? id=1159 题意: 给你一个字符串, 问你做少须要 ...

  8. POJ 1159 回文串-LCS

    题目链接:http://poj.org/problem?id=1159 题意:给定一个长度为N的字符串.问你最少要添加多少个字符才能使它变成回文串. 思路:最少要添加的字符个数=原串长度-原串最长回文 ...

  9. POJ 1159 Palindrome(LCS)

    题目链接:http://poj.org/problem?id=1159 题目大意:给定一串字符,添加最少的字符,使之成为回文串. Sample Input 5 Ab3bd Sample Output ...

随机推荐

  1. 怎样为EXCEL2010添加下拉列表

    注意,下面是Excel2010的步骤和截图,其他版本的Excel类似.   首先用鼠标左键点击你要添加下拉列表的单元格. 如果你只想部分区域有下拉列表,也可以选择部分区域. 下面图片是选择的整个列都是 ...

  2. 浅谈“be practical and realistic”

    一 “实事求是”这个词,一般认为是古人的一种治学观念,后来经咏芝的发明.阐释.以及“应用”,成为“基本思想路线”(具体可参看大学思想政治教科书),被称为“活的灵魂”.这里不想过多地牵扯政治话题,仅就我 ...

  3. python的使用环境总结

    python在linux上运行,使用的是vim,每次都是敲四个空格进行缩进,真尼玛的蛋疼,书本果然是个好东西,从而根据书本python高级编程中的设置配置而来: 1.进行自动补全的脚本 [root@p ...

  4. win7中protel99添加元件库

    protel打开时默认添加Miscellaneous Devices.lib,点击ADD/REMOVE按钮添加所需要的库时,弹出“文件无法识别”. 点击面板右下方“FIND”按钮,弹出如下对话框时不要 ...

  5. C++学习之路--类的构建以及数据转换存储

    注意理解下面的代码,数据的处理与转换. 头文件: #ifndef STACK_H #define STACK_H class Stack { struct Link { void* data; Lin ...

  6. jsp界面项目绝对路径问题

    方法一:直接采用绝对路径 (不推荐) 在JSP页面端,获得本项目的绝对地址(如果你的项目叫MyApp,那么获得到的地址就是 http://localhost:8080/MyApp/): 代码如下: & ...

  7. bzoj2947: [Poi2000]促销

    Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 178  Solved: 119[Submit][Status][Discuss] Descriptio ...

  8. python oop __slots__方法

    动态语言python 可以在程序运行的情况下给class加上功能.具体为 #引入一个 from types import MethodType #方法 #然后 s.set_age = MethodTy ...

  9. Hadoop MapReduce概念学习系列之map并发任务数和reduce并发任务数的原理和代码实现(十八)

    首先,来说的是,reduce并发任务数,默认是1. 即,在jps后,出现一个yarnchild.之后又消失. 这里,我控制reduce并发任务数6 有多少个reduce的并发任务数可以控制,但有多少个 ...

  10. <一道题>求1 + 2! + 3! + .... + N!

    一道小题,╮(╯▽╰)╭ #include <stdio.h> /*jie cheng * * 1 + 2! + 3! + ... + N! * * */ int factorial(in ...