1159 Palindrome(最少插入回文串)
来源:互联网 发布:必向东java 编辑:程序博客网 时间:2024/06/06 00:25
题目大意
给出一个串的长度及该串内容,可以在任意位置插入一个字符,求最少的插入数字,使得串编程回文串.
回文串及从左向右和从右向左读相同.
例如.
aaaacbbbb是回文串
aaab不是回文串我们可以给最前面插入b使得原串变为baaab这个回文串
我的思路.
1.如果该串为空串,或者长度为一,该串是回文串.
2.如果有字符串,a[o...n-1],(0<=l,r<n)如果从l-r之
1可能是l-r对称回文(如果a[l]==a[r]),在匹配[l+1,r-1]这个串
2.l,给r处添加字a[l]和l位置匹配,在匹配[l,r-1]这个串
3l处添加字符a[r],和r位置匹配,在匹配[l+1,r]这个串
3.用以上方法加上备忘录d[l][r]来记录算过的串的最少插入数目
d[l][r]记录从l...r匹配插入的最少字符,问题d[0][n-1]
if(a[l]==a[r]) dd[l][r]=d[l+1][r+1];
else dd[l][r]=max(dd[l+1][r],dd[l][r-1])+1;
备忘录开成short,否则内存超,
险过得的代码.
/*Source CodeProblem: 1159User: Memory: 49652KTime: 1782MSLanguage: GCCResult: AcceptedSource Code*/ /*插入最少的数字是原来数组成回文串*/ #include <stdio.h> #include <string.h> short dd[5001][5001]; char str[5002]=""; int min(int a,int b) { return a<b?a:b; } int f(int l,int r){ if(l>=r) return 0; else if(dd[l][r]>=0) return dd[l][r];//已经计算出来答案 else{ if(str[l]==str[r]) dd[l][r]=f(l+1,r-1); else dd[l][r]=min(f(l+1,r),f(l,r-1))+1; return dd[l][r]; } } int main(){ int n; scanf("%d",&n); scanf("%s",str); memset(dd,-1,sizeof(dd)); printf("%d\n",f(0,n-1)); return 0; }
0 0
- 1159 Palindrome(最少插入回文串)
- 插入最少字符成为回文串
- 插入最少字符使原串变成回文串
- POJ 1159 - Palindrome (DP 添加最少字符使s为回文串)
- 源字符串插入最少字符生成回文串
- 插入最少的字符使字符串成为回文串
- Uva11584 最少回文串
- 插入最少的字符使字符串成为回文串 <最长公共子序列 + 回文>
- LeetCode | Palindrome Partitioning II(最少切割次数将一个子串划分成回文子串)
- Light oj 1044 - Palindrome Partitioning (多校连萌,求最少回文子串的个数)
- poj1159——Palindrome(组成回文串的最少字符数,dp)
- poj1159 Palindrome dp 加最少字符构成回文
- DP17 最少回文切割次数 Palindrome Partitioning @geeksforgeeks
- Palindrome Partitioning II 最少的回文数切割
- POJ1159 Palindrome(dp加最少字母构成回文字符串)
- poj 1159 Palindrome(最长回文子串)
- hdu 1159 Palindrome(回文串) 动态规划
- 1159--Palindrome(dp:回文串变形2)
- Struts2中过滤器,拦截器,监听器他们之间有什么区...
- Java Memory Usage
- extjs Combobox动态加载数据问题,mode:local 还是remote
- 库函数学习(1):简单实现strcpy
- Angularjs 第五章 读书笔记
- 1159 Palindrome(最少插入回文串)
- Web项目管理工具精选
- VC++ 安装驱动 详细解释
- SQL Server中的Collate排序规则关键字的使用
- Java compiler level does not match the version of the installed Java 及MyEclipse中没有ProjectFacets
- ORA-00936 缺失表达式
- 色纺二十个认同感人的很多人挺好他与和大统华太阳花太费劲
- python inspect模块解析--提供自省功能
- VC++ 安装驱动 源码