博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1092 回文字符串(LCSL_DP)
阅读量:6274 次
发布时间:2019-06-22

本文共 962 字,大约阅读时间需要 3 分钟。

基准时间限制:1 秒 空间限制:131072 KB 分值: 10
收藏
关注
回文串是指aba、abba、cccbccc、aaaa这种左右对称的字符串。每个字符串都可以通过向中间添加一些字符,使之变为回文字符串。
例如:abbc 添加2个字符可以变为 acbbca,也可以添加3个变为 abbcbba。方案1只需要添加2个字符,是所有方案中添加字符数量最少的。
 
Input
输入一个字符串Str,Str的长度 <= 1000。
Output
输出最少添加多少个字符可以使之变为回文字串。
Input示例
abbc
Output示例
2 思路:把字符串倒过来,看最大公共子序列的长度减去字符串长度即可 代码如下: #include
#include
#include
#define max(a, b) (a)>(b)?(a):(b) #define MAXN 1002 using namespace std; char s1[MAXN], s2[MAXN]; int c[MAXN][MAXN]; int len1, len2; void LCSL() {
 for (int i = 1; i <= len1; ++i)  {
  for (int j = 1; j <= len2; ++j)   {
   if (s1[i - 1] == s2[j - 1]) c[i][j] = c[i - 1][j - 1] + 1;    else c[i][j] = max(c[i - 1][j], c[i][j - 1]);   }  } } int main() {
 scanf("%s", s1);  len1 = strlen(s1);  reverse_copy(s1, s1 + len1, s2);  len2 = len1;  LCSL();  printf("%d\n", len1 - c[len1][len2]); }

转载于:https://www.cnblogs.com/ALINGMAOMAO/p/9440034.html

你可能感兴趣的文章
this的用法
查看>>
windows下安装redis
查看>>
CentOS7 yum 安装git
查看>>
启动日志中频繁出现以下信息
查看>>
httpd – 对Apache的DFOREGROUND感到困惑
查看>>
分布式锁的一点理解
查看>>
idea的maven项目,install下载重复下载本地库中已有的jar包,而且下载后jar包都是lastupdated问题...
查看>>
2019测试指南-web应用程序安全测试(二)指纹Web服务器
查看>>
树莓派3链接wifi
查看>>
js面向对象编程
查看>>
Ruby中类 模块 单例方法 总结
查看>>
jQuery的validate插件
查看>>
5-4 8 管道符 作业控制 shell变量 环境变量配置
查看>>
Enumberable
查看>>
开发者论坛一周精粹(第五十四期) 求购备案服务号1枚!
查看>>
validate表单验证及自定义方法
查看>>
知识点002-yum的配置文件
查看>>
学习 Git(使用手册)
查看>>
javascript 中出现missing ) after argument list的错误
查看>>
RSA 加密解密
查看>>