codevs1520 回文字符串
题解
题目描述 Description
所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如:
aba kllkllk tyyt 都是。
当然,我们给你的问题不会再简单到判断一个字符串是不是回文字符串。现在要求你,给你一个字符串,可在任意位置添加字符,最少再添加几个字符,可以使这个字符串成为回文字符串。
输入描述 Input Description
第一行给出一个字符串,长度为N,以换行符结束(0 < N < 1000)
输出描述 Output Description
输出所需添加的最少字符数
样例输入 Sample Input
Ab3bd
样例输出 Sample Output
2
数据范围及提示 Data Size & Hint
0 < N < 1000
分析:
我觉得我们可以把这个串翻一下
变成两个串,
问题就变成了至少要多少次添加使得两个串一样
f[i][j]表示第一个串的第i位和第二个串的第j位匹配
如果s1[i]==s2[j]
f[i][j]=f[i-1][j-1]
如果s1[i]!=s2[j]
f[i][j]=min{f[i-1][j],f[i][j-1]}+1
tip
注意初始化 f[i][0]=f[0][i]=i
最后的答案是
f[len][len]/2
因为我们把一个字符串拆成了两个
要让ta们变成相同字符串,就需要两个字符串都改变
这样每个操作就会计算两遍,所以最后输出f[len][len]/2就好了
这里写代码片
#include<cstdio>
#include<cstring>
#include<iostream>using namespace std;char s1[1002],s2[1002];
int l,f[1002][1002];int main()
{scanf("%s",&s1);l=strlen(s1);for (int i=l-1;i>=0;i--) s2[l-i-1]=s1[i];int i,j;for (i=1;i<=l;i++) f[i][0]=i,f[0][i]=i;for (i=1;i<=l;i++)for (j=1;j<=l;j++){if (s1[i-1]==s2[j-1]) f[i][j]=f[i-1][j-1];else f[i][j]=min(f[i-1][j],f[i][j-1])+1;}printf("%d",f[l][l]/2);return 0;
}
转载于:https://www.cnblogs.com/wutongtong3117/p/7673196.html
codevs1520 回文字符串相关推荐
- C语言判断回文字符串
C语言判断回文字符串 #include<stdio.h> char *huiwen(char *str){int i, j,t=0;for(i = 0,j = strlen(str) - ...
- NYOJ 回文字符串
回文字符串 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba".当然, ...
- java判断回文字符串几种简单的实现
11年it研发经验,从一个会计转行为算法工程师,学过C#,c++,java,android,php,go,js,python,CNN神经网络,四千多篇博文,三千多篇原创,只为与你分享,共同成长,一起进 ...
- 题目1192:回文字符串
题目描述: 给出一个长度不超过1000的字符串,判断它是不是回文(顺读,逆读均相同)的. 输入: 输入包括一行字符串,其长度不超过1000. 输出: 可能有多组测试数据,对于每组数据,如果是回文字符串 ...
- 51nod 1092 回文字符串
基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注 回文串是指aba.abba.cccbccc.aaaa这种左右对称的字符串.每个字符串都可以通过向中间 ...
- 判断字符串_python实现--判断回文字符串、回文链表、回文数
所谓回文字符串,就是正读和反读都一样的字符串,比如"level"或者"noon"等等就是回文串.即是对称结构Python系列教程,免费获取,遇到bug及时反馈, ...
- Palindrome(插入字符变成回文字符串)
题目:给定一个字符串,问最少插入多少字符,使字符串变成回文字符串. 思路:X:原字符串 Y:逆字符串 需要插入的字符数=X的长度-(X与Y的LCS的长度) 这里使用了滚动数组,压缩空间,原因: ...
- 回文字符串啊~---太搞了 少年 DXH
点击打开链接 j几天比赛了刚好出现了回文字符串,记得不要喝公共自序列区分啊,回文就是从前到后看是一样的,从后往前看也是一样的, 这道题的思路就是先找出本串中自有的回文串,然后再加上不是回文的剩下的子串 ...
- NYOJ 37 回文字符串
回文字符串 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba".当然, ...
最新文章
- 计算机在医疗方面的应用与前景,计算机在医疗卫生领域应用现状及前景.docx
- Science:中科院植物所马克平组揭示土壤真菌与树木密度的关系
- 第十五届全国大学生智能汽车竞赛华北赛区比赛
- 汇编: dosbox命令
- python jit_Pyston是一个基于JIT的Python开源实现
- 现代软件工程 结对编程 (II) 电梯调度 算法和测试框架
- Windows Server 2012系列之三提升域功能级别与降低域功能级别
- Linux环境下为Tomcat安装APR CentOS系列
- Spring RestTemplate 访问https站点
- 《C++Primer》14、15章
- Apollo OpenDRIVE和ASAM OpenDRIVE的区别
- 全国哀悼日 一段css让全站变灰
- Android使用百度大脑EasyDL识别交通标志物
- 百度百科爬虫爬人物信息
- 百度网盘怎么取消自动续费
- 小括号、中括号、大括号(正则表达式)
- 第26周-window程序设计(基础篇)-第5章(图形基础)-边界框及LINDEMO.C
- 计算机课小组主题作业,计算机应用课程小组学习法的实践
- 语义角色标注 Semantic Role Labeling(SRL) 初探(整理英文tutorial)
- c 抓取ajax异步数据,用requests.post提交表单抓取异步ajax信息失败
热门文章
- eclipse3.6默认指向 WebContent 目录 修改为 webRoot
- python字典高级用法_Python 进阶编程之字典的高级用法
- ZooKeeper概述与原理
- java属性修改前后_java 记录对象前后修改的内容(工具类)
- 实验六 Linux进程编程,Linux系统编程实验六:进程间通信
- springboot2 cookie的token如何放入请求头_Spring MVC 到底是如何工作的
- KubeDL 0.4.0 - Kubernetes AI 模型版本管理与追踪
- 抛鸡蛋html5游戏,数学智力题:扔鸡蛋计算不会碎的楼层
- Jmeter对服务器的压测
- 1、spring的IOC