Palindrome(插入字符变成回文字符串)
题目:给定一个字符串,问最少插入多少字符,使字符串变成回文字符串。
思路: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(插入字符变成回文字符串)相关推荐
- 动态规划(DP),压缩状态,插入字符构成回文字符串
题目链接:http://poj.org/problem?id=1159 解题报告: 1.LCS的状态转移方程为 if(str[i-1]==str[j-1])dp[i][j]=dp[i-1][j-1]+ ...
- C#LeetCode刷题之#680-验证回文字符串 Ⅱ(Valid Palindrome II)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3961 访问. 给定一个非空字符串 s,最多删除一个字符.判断是否 ...
- HihoCode1721删除一个字符之后是回文字符串
#1721 : 回文字符串2 Time Limit:10000ms Case Time Limit:1000ms Memory Limit:256MB Description 愚人节那天,小Ho在小H ...
- C语言,判断二维字符数组是否存在回文字符串 例如:char a[] [10]={“asd“,“asa“,“werew“,“yuyu“};
判断二维字符数组是否存在回文字符串 例如:char a[] [10]={"asd","asa","werew","yuyu&quo ...
- 判断二维字符数组是否存在回文字符串例如:char a[] [10]={“asd“,“asa“,“werew“,“yuyu“}; 提示存在回文字符串,回文字符串对称
1.循环二维数组,存在回文,返回1,否则返回0 int LoopStr(char str[] [10],int n) 2.回文字符串函数,是回文返回1,否则返回0 int HuiWen(char *p ...
- LeetCode680删除一个字符后是否还是回文字符串
题目: 给定一个非空字符串 s,最多删除一个字符.判断是否能成为回文字符串.示例 1:输入: "aba" 输出: True 示例 2:输入: "abca" 输出 ...
- matlab回文字符判断程序,(c语言)回文字符串的判断,gets和scanf
问题描述:判断一个字符串是否是回文字符串.程序分析:回文字符串:回文字符串是指一个字符中的最高位与最低位的字符是一样的,次高位和次低位上的字符是一样的 问题描述: 判断一个字符串是否是回文字符串. 程 ...
- 【LeetCode】1400. 构造 K 个回文字符串 Construct K Palindrome Strings
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 统计奇数字符出现次数 日期 题目地址:https:// ...
- 回文字符串(Palindromic_String)
一.基本概念 回文字符串:是一个正读和反读都一样的字符串. 二.问题与算法 (1)判断 思想: 1.初始化标志flag=true: 2.输入字符串str,并获取其长度len: 3.定义并初始化游标i= ...
最新文章
- C++基本要点复习--------coursera程序设计实习(PKU)的lecture notes
- 一块只要4美元,超廉价版树莓派诞生,还用上了自研芯片
- 高性能ASP.NET站点构建之简单的优化措施
- 第十节课-RNN介绍
- Shell-通过shell启动Java类中的main方法 + 通过Shell启动jar包
- 安卓linux终端termux下载,高级手机终端app
- python中函数可以赋值给一个变量_python中函数赋值给变量时的问题注意详解
- 欢乐纪中A组赛【2019.8.23】
- 数学图形(1.35)Kappa curve
- html立体音乐相册源码,印记工坊立体音乐相册 v 1.8 官方版|印记工坊立体音乐相册官方版|印记工坊立体音乐相册电脑版_最火软件站...
- android imageview 图片模糊,imageview实现高斯模糊
- 国庆八天乐,码农长假怎么过?别加班了
- Flag Engine(动画系统)学习笔记(八)——动画混合
- 《人月神话》第十一弹
- 华为笔记本没有网线口_有的笔记本电脑没有网线插口吗?
- 【JavaScript】9.基本引用类型-原始值包装类型
- 解决iOS6 Apple ID无法登录!十年了,爷青回!还是那个iPhone 4s,竟然能登陆成功!
- 前端学习CSS3(day3)盾牌案例
- java爬虫抓取起点小说_爬虫实践-爬取起点中文网小说信息
- 倒计时到0停止,用在手机获取验证码的倒计时
热门文章
- Mybatis (ParameterType) 如何传递多个不同类型的参数
- jvm监控工具(排查内存溢出和内存泄漏)
- 数据挖掘-聚类分析(Python实现K-Means算法)
- 基于python opencv实现广角相机标定和图像畸变矫正
- matlab找出二维矩阵中最大值的位置或者最小值的位置
- android bitmap 占用内存大小,drawable与bitmap内存占用大小
- Resilience4j-轻量级熔断框架
- java.lang.Instrument 代理Agent使用
- Spring - Java/J2EE Application Framework 应用框架 第 11 章 使用ORM工具进行数据访问
- 我的VIM配置及说明【K-VIM】