题目:给定一个字符串,问最少插入多少字符,使字符串变成回文字符串。

思路:X:原字符串 Y:逆字符串 需要插入的字符数=X的长度-(X与Y的LCS的长度)

     这里使用了滚动数组,压缩空间,原因:d[i][j]只依赖于 d[i-1][j] d[i][j-1]

 1 #include <iostream>
 2 #include <string>
 3 #include <cmath>
 4 #include <vector>
 5 #include <algorithm>
 6 #include <sstream>
 7 #include <cstring>
 8
 9 using namespace std;
10 int dp[2][5005];
11 int main()
12 {
13
14    string s1,s2;
15
16     while(cin>>s1)
17     {
18     s2=s1;
19     int n,i,j;
20     n=s1.size();
21     reverse(s1.begin(),s1.end());
22     memset(dp,0,sizeof(dp));
23
24     for(i=1;i<=n;i++)
25         for(j=1;j<=n;j++)
26             if(s1[i-1]==s2[j-1])
27                 dp[i%2][j]=dp[(i-1)%2][j-1]+1;
28             else
29                 dp[i%2][j]=max(dp[(i-1)%2][j],dp[i%2][j-1]);
30
31     cout<<n-dp[n%2][n]<<endl;
32
33     }
34 return 0;
35 }

转载于:https://www.cnblogs.com/xiaoying1245970347/p/4698668.html

Palindrome(插入字符变成回文字符串)相关推荐

  1. 动态规划(DP),压缩状态,插入字符构成回文字符串

    题目链接:http://poj.org/problem?id=1159 解题报告: 1.LCS的状态转移方程为 if(str[i-1]==str[j-1])dp[i][j]=dp[i-1][j-1]+ ...

  2. C#LeetCode刷题之#680-验证回文字符串 Ⅱ​​​​​​​(Valid Palindrome II)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3961 访问. 给定一个非空字符串 s,最多删除一个字符.判断是否 ...

  3. HihoCode1721删除一个字符之后是回文字符串

    #1721 : 回文字符串2 Time Limit:10000ms Case Time Limit:1000ms Memory Limit:256MB Description 愚人节那天,小Ho在小H ...

  4. C语言,判断二维字符数组是否存在回文字符串 例如:char a[] [10]={“asd“,“asa“,“werew“,“yuyu“};

    判断二维字符数组是否存在回文字符串 例如:char a[] [10]={"asd","asa","werew","yuyu&quo ...

  5. 判断二维字符数组是否存在回文字符串例如:char a[] [10]={“asd“,“asa“,“werew“,“yuyu“}; 提示存在回文字符串,回文字符串对称

    1.循环二维数组,存在回文,返回1,否则返回0 int LoopStr(char str[] [10],int n) 2.回文字符串函数,是回文返回1,否则返回0 int HuiWen(char *p ...

  6. LeetCode680删除一个字符后是否还是回文字符串

    题目: 给定一个非空字符串 s,最多删除一个字符.判断是否能成为回文字符串.示例 1:输入: "aba" 输出: True 示例 2:输入: "abca" 输出 ...

  7. matlab回文字符判断程序,(c语言)回文字符串的判断,gets和scanf

    问题描述:判断一个字符串是否是回文字符串.程序分析:回文字符串:回文字符串是指一个字符中的最高位与最低位的字符是一样的,次高位和次低位上的字符是一样的 问题描述: 判断一个字符串是否是回文字符串. 程 ...

  8. 【LeetCode】1400. 构造 K 个回文字符串 Construct K Palindrome Strings

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 统计奇数字符出现次数 日期 题目地址:https:// ...

  9. 回文字符串(Palindromic_String)

    一.基本概念 回文字符串:是一个正读和反读都一样的字符串. 二.问题与算法 (1)判断 思想: 1.初始化标志flag=true: 2.输入字符串str,并获取其长度len: 3.定义并初始化游标i= ...

最新文章

  1. C++基本要点复习--------coursera程序设计实习(PKU)的lecture notes
  2. 一块只要4美元,超廉价版树莓派诞生,还用上了自研芯片
  3. 高性能ASP.NET站点构建之简单的优化措施
  4. 第十节课-RNN介绍
  5. Shell-通过shell启动Java类中的main方法 + 通过Shell启动jar包
  6. 安卓linux终端termux下载,高级手机终端app
  7. python中函数可以赋值给一个变量_python中函数赋值给变量时的问题注意详解
  8. 欢乐纪中A组赛【2019.8.23】
  9. 数学图形(1.35)Kappa curve
  10. html立体音乐相册源码,印记工坊立体音乐相册 v 1.8 官方版|印记工坊立体音乐相册官方版|印记工坊立体音乐相册电脑版_最火软件站...
  11. android imageview 图片模糊,imageview实现高斯模糊
  12. 国庆八天乐,码农长假怎么过?别加班了
  13. Flag Engine(动画系统)学习笔记(八)——动画混合
  14. 《人月神话》第十一弹
  15. 华为笔记本没有网线口_有的笔记本电脑没有网线插口吗?
  16. 【JavaScript】9.基本引用类型-原始值包装类型
  17. 解决iOS6 Apple ID无法登录!十年了,爷青回!还是那个iPhone 4s,竟然能登陆成功!
  18. 前端学习CSS3(day3)盾牌案例
  19. java爬虫抓取起点小说_爬虫实践-爬取起点中文网小说信息
  20. 倒计时到0停止,用在手机获取验证码的倒计时

热门文章

  1. Mybatis (ParameterType) 如何传递多个不同类型的参数
  2. jvm监控工具(排查内存溢出和内存泄漏)
  3. 数据挖掘-聚类分析(Python实现K-Means算法)
  4. 基于python opencv实现广角相机标定和图像畸变矫正
  5. matlab找出二维矩阵中最大值的位置或者最小值的位置
  6. android bitmap 占用内存大小,drawable与bitmap内存占用大小
  7. Resilience4j-轻量级熔断框架
  8. java.lang.Instrument 代理Agent使用
  9. Spring - Java/J2EE Application Framework 应用框架 第 11 章 使用ORM工具进行数据访问
  10. 我的VIM配置及说明【K-VIM】