博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
动态规划 - 腾讯2016实习生笔试
阅读量:7024 次
发布时间:2019-06-28

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

mean

给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?输出需要删除的字符个数。

analyse

对于这题来说,插入字符和删除字符使其成为回文串,答案是一样的.

首先求s的反串rs,然后对s和rs求最长公共子序列,要删除的字符个数就是LCS.

time complexity

O(N^2)

 code

#include 
using namespace std;const int MAXN=1010;int dp[MAXN][MAXN];class Solution{public: int solve(string &s) { return s.length()-getLCS(s); } int getLCS(string &s1) { string s2(s1); reverse(s2.begin(),s2.end()); int len=s1.length(); memset(dp,0,sizeof dp); for(int i=0;i
>s) { Solution solution; cout<
<

转载于:https://www.cnblogs.com/crazyacking/p/5376360.html

你可能感兴趣的文章
C# 项目中的 bin 目录和 obj 目录的区别,以及 Debug 版本和 Release 版本的区别
查看>>
使用DataTable作为存储过程的参数
查看>>
Yslow
查看>>
git常用命令
查看>>
java虚拟机:堆内存
查看>>
由strcat函数引发的C语言中数组和指针问题的思考
查看>>
Const使用
查看>>
LeetCode:Plus One
查看>>
学习目标
查看>>
C#三种定时器的实现-转载
查看>>
Nginx的nginx.conf配置文件中文注释说明
查看>>
Java 反射 Method threw 'java.lang.InstantiationException' exception.
查看>>
VMware虚拟机创建安装之后不出现VMnet1和VMnet8虚拟网卡
查看>>
Beam Search
查看>>
xtrabackup单表备份与恢复
查看>>
TSringGrid用法(转)
查看>>
spring cloud学习(七)Spring Cloud Config(续)
查看>>
多数据源配置与使用(1)(三十二)
查看>>
向上转型,向下转型
查看>>
2011年暑假学习总结
查看>>