516. Longest Palindromic Subsequence
来源:互联网 发布:幼儿园学英语软件 编辑:程序博客网 时间:2024/06/06 02:10
Given a string s, find the longest palindromic subsequence's length in s. You may assume that the maximum length of s is 1000.Example 1:Input:"bbbab"Output:4One possible longest palindromic subsequence is "bbbb".Example 2:Input:"cbbd"Output:2
- 这道题目还比较有意思,关键是找到递推公式。本题的回文与一般的题目的回文还不太一样。我们用dp[i][j]表示从i到j之间的回文字串最大长度:
- s[i] == s[j],则这时dp[i][j] = dp[i+1][j-1] + 2;
- s[i] != s[j],则这是dp[i][j] = max(dp[i][j-1],dp[i-1][j]);
class Solution {public: int longestPalindromeSubseq(string s) { int n = s.size(); vector<int> t(n,0); vector<vector<int>> dp(n,t); if(n <= 1){ return n; } for(int i = 0;i < n;++i){ dp[i][i] = 1; } for(int l = 1;l <= n-1; ++l){ for(int i = 0; i < n-l; ++i){ int j = i + l; if(s[j] == s[i]){ dp[i][j] = (j == i+1)?2:dp[i+1][j-1]+2; }else{ dp[i][j] = max(dp[i][j-1],dp[i+1][j]); } } } return dp[0][n-1]; }};
阅读全文
0 0
- 516. Longest Palindromic Subsequence
- 516. Longest Palindromic Subsequence
- 516. Longest Palindromic Subsequence
- 516. Longest Palindromic Subsequence
- 516. Longest Palindromic Subsequence
- 516. Longest Palindromic Subsequence
- 516. Longest Palindromic Subsequence
- 516. Longest Palindromic Subsequence
- 516. Longest Palindromic Subsequence
- 516. Longest Palindromic Subsequence
- 516. Longest Palindromic Subsequence
- 516. Longest Palindromic Subsequence
- 516. Longest Palindromic Subsequence
- 516. Longest Palindromic Subsequence
- 516. Longest Palindromic Subsequence
- 516. Longest Palindromic Subsequence
- 516. Longest Palindromic Subsequence
- 516. Longest Palindromic Subsequence
- 软件构造 课堂笔记4
- [数据结构] 算法效率 以“计算多项式值”为例
- SQL基础练习一
- Python入门--模块的导入和使用
- 图片的上传和curl下载分析
- 516. Longest Palindromic Subsequence
- SQL练习二条件查询
- jvm数据区
- c语言字符串数组的两种表示方法
- Mysql数据库优化
- 搬砖问题 c++
- c++中对象动态建立与静态建立的区别和应用
- Codeforces 859B Lazy Security Guard
- SQL试题三