DP问题---添加字符把字符串变为回文字符串
来源:互联网 发布:webdriver执行js方法 编辑:程序博客网 时间:2024/06/06 09:13
问题详情
把一个字符串变成回文串,最少要添加几个字符?
求解思路
动态规划思路求解
设字符串为s,f[i,j] 为将s[i,j]变为回文字符串需要添加的最少字符数
则有递推方程如下:
f[i,j] = 0; if(i>=j)f[i,j] = f[i+1,j-1]; if(i<j && s[i] == s[j])f[i,j] = min(f[i+1,j],f[i,j-1]) +1 ; if(i < j && s[i] != s[j])
解题代码
#include<iostream>#include<cstring>#include<string>#include<cstdlib>#include<cmath>using namespace std;#define MAXSIZE 100int f[MAXSIZE][MAXSIZE];int main(){ string s; while(cin >> s){ memset(f,0,sizeof(f)); for (int i = s.length() - 1; i >= 0; --i) { for (int j = i+1; j < s.length(); j++) { if(s[i] == s[j]) f[i][j] = f[i+1][j-1]; else { f[i][j] = min(f[i+1][j],f[i][j-1]) + 1; } } } cout<<f[0][s.length()-1]<<endl; } return 0;}
1 0
- DP问题---添加字符把字符串变为回文字符串
- 添加字符成为回文字符串
- 动态规划题:把一个字符串变为回文串
- DP问题 制造回文字符串
- 字符串添加一个字母将其变为回文串
- 字符串问题---添加最少字符使字符串整体都是回文字符串
- 回文字符串 的添加问题
- 添加最少字符使成为回文字符串
- 添加最少的字符使整体字符串都是回文字符串
- 51nod 1092 回文字符串 dp问题
- NYOJ - 回文字符串(DP)
- DP-回文字符串匹配
- uva10739(DP 回文字符串)
- 【DP入门】回文字符串
- [codevs1520]回文字符串(dp)
- 最少需要删除多少个字符才能使字符串S变为回文串
- c#输入一个字符串,并把字符串的第一个字符变为大写,如果字符串中有空格则把空格的下个字符变为大写之后输出
- 插入最少字符使字符串回文(LCS,DP)
- visualVM 打开报cannot find java 1.7 or higher错误
- java中ThreadLocal类的使用
- 自增自减运算符
- Linux用过命令
- mr运行过程中的一些参数
- DP问题---添加字符把字符串变为回文字符串
- android 文件系统升级 boot.img
- 数据存储(五种方式三)-ContentProvider
- struts中路径匹配原则
- Spring boot 使用restful风格的spring security login
- CentOS 安装rz和sz命令
- python Setuptools
- jConsole及visual VM通过JMX远程监控hbase的regionserver
- Java逻辑运算符