题目

回文串是指aba、abba、cccbccc、aaaa这种左右对称的字符串。每个字符串都可以通过向中间添加一些字符,使之变为回文字符串。
例如:abbc 添加2个字符可以变为 acbbca,也可以添加3个变为 abbcbba。方案1只需要添加2个字符,是所有方案中添加字符数量最少的。

输入

输入一个字符串Str,Str的长度 <= 1000。

输出

输出最少添加多少个字符可以使之变为回文字串。

输入样例

abbc

输出样例

2

思路:由于要找最少添加的字符使得原字符串变为回文串,那么先将给出的字符串反转,将两字符串做 LCS,得到的是最大的公共子串的长度,那么用字符串长度减去最大公共子串长度就是最少添加字符的个数

源程序

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<cmath>
#include<ctime>
#include<algorithm>
#include<utility>
#include<stack>
#include<queue>
#include<vector>
#include<set>
#include<map>
#define PI acos(-1.0)
#define E 1e-12
#define INF 0x3f3f3f3f
#define LL long long
const int MOD=1000000007;
const int N=1000+5;
const int dx[]= {-1,1,0,0};
const int dy[]= {0,0,-1,1};
using namespace std;
char str[N];
char reStr[N];
int dp[N][N];
int main() {scanf("%s",str+1);int len=strlen(str+1);for(int i=1,j=len; i<=len+1; i++,j--) {reStr[j]=str[i];}for(int i=1; i<=len; i++) {for(int j=1; j<=len; j++) {if(str[i]==reStr[j]) {dp[i][j]=dp[i-1][j-1]+1;} else {dp[i][j]=max(dp[i][j-1],dp[i-1][j]);}}}int res=len-dp[len][len];printf("%d\n",res);return 0;
}

回文字符串(51Nod-1092)相关推荐

  1. 1092 回文字符串(51nod)

    原题链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1092 这题其实可以把字符串str反转一下然后再求两个字符串的最 ...

  2. 51nod 1092 回文字符串【LCS】

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

  3. 51nod 1092 回文字符串

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

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

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

  5. NYOJ 回文字符串

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

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

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

  7. 题目1192:回文字符串

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

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

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

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

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

  10. codevs1520 回文字符串

    题解 题目描述 Description 所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如: aba kllkllk tyyt 都是. 当然,我们给你的问题不会再简单到判断一个字 ...

最新文章

  1. 深度残差收缩网络:借助注意力机制实现特征的软阈值化
  2. SIMD学习 -- 用SSE2指令作点乘和累加计算
  3. Hadoop 05_MapReduce1.0
  4. ASP.NET Core中的内存缓存
  5. vue 子组件更新父组件状态 使用sync
  6. 2038: [2009国家集训队]小Z的袜子(hose)
  7. IntelliJ IDEA 编辑器配置vue高亮显示
  8. error: Please reinstall the libcurl distribution - easy.h should be in curl-dir/include/curl/
  9. ASP.NET设计网络硬盘之两重要类
  10. 解决ERROR 1044 (42000): Access denied for user
  11. what's .NET
  12. 虚拟机如何做服务器系统,sap虚拟机作为服务器(sap系统虚拟机)
  13. linux关闭防火墙后要重启网络吗,linux 下关闭防火墙方法和单向ping通问题之解决...
  14. php使用获取mysqlerror时报错Call to undefined function mysql_error()
  15. 三级数据库知识点学习(五)
  16. 常见物联网近距离无线通信技术解析
  17. 一维信号小波阈值去噪
  18. 013-SpringCloud系列之SpringCloudAlibabaNacos服务注册和配置中心
  19. 学会Zynq(2)Zynq-7000处理器的配置详解
  20. odoo用户使用——采购

热门文章

  1. JavaEE实战班第十五天
  2. 阿里动物园新成员来了,10本书带你读懂这个新物种
  3. 几年不联系的前女友,加我就为说这……
  4. 你的域名是如何变成 IP 地址的?
  5. 作为一个死忠粉,我的 IntelliJ IDEA 一直都是这样来设置的,效果很棒!
  6. 【jeecg Docker安装】使用 Docker 搭建 Java Web 运行环境
  7. 【jeecg移动开发能力】Jeecg 重磅来袭,强大移动报表配置能力,一次配置七种展现风格
  8. Group by 第二选择 OVER
  9. SpringBoot2.0基础案例分类总结,后续更新计划说明
  10. springcloud 系列教程一:微服务与网站架构演变过程