【又见LCS】NYOJ-37 回文字符串
【题目链接】
回文字符串
- 描述
- 所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba"。当然,我们给你的问题不会再简单到判断一个字符串是不是回文字符串。现在要求你,给你一个字符串,可在任意位置添加字符,最少再添加几个字符,可以使这个字符串成为回文字符串。
- 输入
-
第一行给出整数N(0<N<100)
接下来的N行,每行一个字符串,每个字符串长度不超过1000. - 输出
- 每行输出所需添加的最少字符数
- 样例输入
-
1 Ab3bd
- 样例输出
-
2
【思路】
由之前做过的几题LCS,不难看出,这道题的答案就是,将输入的字符串与其反转后的字符串求两者的LCS,然后字符串长度-LCS值便是答案。
LCS博客连接
1 #include<iostream> 2 #include<cstring> 3 using namespace std; 4 #define max(a,b) a > b ? a : b 5 const int maxn = 1001; 6 int dp[maxn][maxn]; 7 char s1[maxn],s2[maxn]; 8 int main(){ 9 int n; 10 cin >> n; 11 while(n--){ 12 int i,j; 13 cin >> s1; 14 int len = strlen(s1); 15 for(i = len - 1,j = 0;i >= 0;i--,j++) 16 s2[j] = s1[i]; 17 for(i = 1;i <= len;i++){ 18 for(j = 1;j <= len;j++){ 19 if(s1[i - 1] == s2[j - 1]){ 20 dp[i][j] = dp[i - 1][j - 1] + 1; 21 } 22 else 23 dp[i][j] = max(dp[i][j - 1],dp[i - 1][j]); 24 } 25 } 26 cout << len - dp[len][len] << endl; 27 } 28 return 0; 29 } 30
【注意】
本来这题应该一次水过的,但是提交编译错误了1次,原因是一个代码中同时用了 scanf 与 cin,cout,同时用编译器不会报错,但是往往忘记加两者不同的头文件,所以以后要注意这个,尽量统一用一种输入输出的方法。
不然,影响拿一血啊~
转载于:https://www.cnblogs.com/zhengbin/p/4467697.html
【又见LCS】NYOJ-37 回文字符串相关推荐
- NYOJ 37 回文字符串
回文字符串 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba".当然, ...
- nyist oj 37 回文字符串 (动态规划经典)
回文字符串 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描写叙述 所谓回文字符串,就是一个字符串.从左到右读和从右到左读是全然一样的.比方"aba".当 ...
- NYOJ 回文字符串
回文字符串 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba".当然, ...
- 51nod 1092 回文字符串【LCS】
1092 回文字符串 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注 回文串是指aba.abba.cccbccc.aaaa这种左右对称的字符串.每个字符 ...
- 51nod 1092 回文字符串
基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注 回文串是指aba.abba.cccbccc.aaaa这种左右对称的字符串.每个字符串都可以通过向中间 ...
- Palindrome(插入字符变成回文字符串)
题目:给定一个字符串,问最少插入多少字符,使字符串变成回文字符串. 思路:X:原字符串 Y:逆字符串 需要插入的字符数=X的长度-(X与Y的LCS的长度) 这里使用了滚动数组,压缩空间,原因: ...
- 回文字符串(51Nod-1092)
题目 回文串是指aba.abba.cccbccc.aaaa这种左右对称的字符串.每个字符串都可以通过向中间添加一些字符,使之变为回文字符串. 例如:abbc 添加2个字符可以变为 acbbca,也可以 ...
- python生成回文字符串_回文字符串最长回文子串和子序列 - Python
Palindrome 回文字符串就是指从前往后和从后往前读,都是一样的,比如"aabcbaa". 注意区分子串和子序列,子串是连续的,子序列可以不连续 题型1:判断字符串是否为回文 ...
- C语言判断回文字符串
C语言判断回文字符串 #include<stdio.h> char *huiwen(char *str){int i, j,t=0;for(i = 0,j = strlen(str) - ...
- java判断回文字符串几种简单的实现
11年it研发经验,从一个会计转行为算法工程师,学过C#,c++,java,android,php,go,js,python,CNN神经网络,四千多篇博文,三千多篇原创,只为与你分享,共同成长,一起进 ...
最新文章
- 不到 100 行 Python 代码教你做出精美炫酷的可视化大屏
- 【转】如何使用VS 2013发布一个可以在Windows XP中独立运行的可执行文件
- 常用命令-临时记录!
- 【Flutter】Flutter 混合开发 ( Dart 代码调试 | Flutter 单独调试 | 混合模式下 Flutter 调试 )
- Day2-springmvc初解
- 对计算机描述错误的是什么意思,下列对计算机特点的描述中错误的是:________。...
- 如何使用firebug
- 【Mybatis】分割字符串
- 对jvm 同步锁的理解
- [leetcode] 95. 不同的二叉搜索树 II
- Laravel配置DingoAPI和JWT
- 答题活动助手小程序更新记录
- mysql 主键 sql语句_Mysql主键相关的sql语句集锦
- CSS margin 用法
- 采药(洛谷-P1048)
- C语言 TCP并发服务器
- fedora28/29/32/centos ipmi 登录解决
- SQL语句执行顺序及建议
- 用Python帮你选注双色球号码
- 制作3D动漫模型原来这么简单,会建模还能拿高薪?
热门文章
- 多人麻将源码 html5,新版大众麻将 H5版
- 【UVA1339】古老的密码(巧妙思路+(q)sort降序排列的三种方法)
- hdoj1159:Common Subsequence(dp基础题-最长公共子序列LCS)
- java 链接kafka单机版_kafka单机环境搭建及其基本使用
- STM32——库函数版——矩阵按键程序
- 架构师资源汇总 从入门到精通 将近20年的工作经验毫无保留分享
- 算法:Longest Valid Parentheses(最长有效的括号)
- mysql8多表连接_MySQL 多个表的 连接
- 446.等差数列划分II-子序列
- 117.填充同一层的兄弟节点II