题解
题目描述 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 回文字符串相关推荐

  1. C语言判断回文字符串

    C语言判断回文字符串 #include<stdio.h> char *huiwen(char *str){int i, j,t=0;for(i = 0,j = strlen(str) - ...

  2. NYOJ 回文字符串

    回文字符串 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba".当然, ...

  3. java判断回文字符串几种简单的实现

    11年it研发经验,从一个会计转行为算法工程师,学过C#,c++,java,android,php,go,js,python,CNN神经网络,四千多篇博文,三千多篇原创,只为与你分享,共同成长,一起进 ...

  4. 题目1192:回文字符串

    题目描述: 给出一个长度不超过1000的字符串,判断它是不是回文(顺读,逆读均相同)的. 输入: 输入包括一行字符串,其长度不超过1000. 输出: 可能有多组测试数据,对于每组数据,如果是回文字符串 ...

  5. 51nod 1092 回文字符串

    基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 回文串是指aba.abba.cccbccc.aaaa这种左右对称的字符串.每个字符串都可以通过向中间 ...

  6. 判断字符串_python实现--判断回文字符串、回文链表、回文数

    所谓回文字符串,就是正读和反读都一样的字符串,比如"level"或者"noon"等等就是回文串.即是对称结构Python系列教程,免费获取,遇到bug及时反馈, ...

  7. Palindrome(插入字符变成回文字符串)

    题目:给定一个字符串,问最少插入多少字符,使字符串变成回文字符串. 思路:X:原字符串 Y:逆字符串 需要插入的字符数=X的长度-(X与Y的LCS的长度)     这里使用了滚动数组,压缩空间,原因: ...

  8. 回文字符串啊~---太搞了 少年 DXH

    点击打开链接 j几天比赛了刚好出现了回文字符串,记得不要喝公共自序列区分啊,回文就是从前到后看是一样的,从后往前看也是一样的, 这道题的思路就是先找出本串中自有的回文串,然后再加上不是回文的剩下的子串 ...

  9. NYOJ 37 回文字符串

    回文字符串 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba".当然, ...

最新文章

  1. 计算机在医疗方面的应用与前景,计算机在医疗卫生领域应用现状及前景.docx
  2. Science:中科院植物所马克平组揭示土壤真菌与树木密度的关系
  3. 第十五届全国大学生智能汽车竞赛华北赛区比赛
  4. 汇编: dosbox命令
  5. python jit_Pyston是一个基于JIT的Python开源实现
  6. 现代软件工程 结对编程 (II) 电梯调度 算法和测试框架
  7. Windows Server 2012系列之三提升域功能级别与降低域功能级别
  8. Linux环境下为Tomcat安装APR CentOS系列
  9. Spring RestTemplate 访问https站点
  10. 《C++Primer》14、15章
  11. Apollo OpenDRIVE和ASAM OpenDRIVE的区别
  12. 全国哀悼日 一段css让全站变灰
  13. Android使用百度大脑EasyDL识别交通标志物
  14. 百度百科爬虫爬人物信息
  15. 百度网盘怎么取消自动续费
  16. 小括号、中括号、大括号(正则表达式)
  17. 第26周-window程序设计(基础篇)-第5章(图形基础)-边界框及LINDEMO.C
  18. 计算机课小组主题作业,计算机应用课程小组学习法的实践
  19. 语义角色标注 Semantic Role Labeling(SRL) 初探(整理英文tutorial)
  20. c 抓取ajax异步数据,用requests.post提交表单抓取异步ajax信息失败

热门文章

  1. eclipse3.6默认指向 WebContent 目录 修改为 webRoot
  2. python字典高级用法_Python 进阶编程之字典的高级用法
  3. ZooKeeper概述与原理
  4. java属性修改前后_java 记录对象前后修改的内容(工具类)
  5. 实验六 Linux进程编程,Linux系统编程实验六:进程间通信
  6. springboot2 cookie的token如何放入请求头_Spring MVC 到底是如何工作的
  7. KubeDL 0.4.0 - Kubernetes AI 模型版本管理与追踪
  8. 抛鸡蛋html5游戏,数学智力题:扔鸡蛋计算不会碎的楼层
  9. Jmeter对服务器的压测
  10. 1、spring的IOC