Leetcode-516-Longest Palindromic Subsequence
来源:互联网 发布:淘宝店铺和旺铺的区别 编辑:程序博客网 时间:2024/06/06 03:03
Given a string s, find the longest palindromic subsequence's length in s. You may assume that the maximum length of s is 1000.
题目的意思是找到字符串s中最长的回文子序列:
Example 1:
Input:
"bbbab"Output:
4One possible longest palindromic subsequence is "bbbb".
Example 2:
Input:
"cbbd"Output:
2One possible longest palindromic subsequence is "bb".
动态规划解法:设dp[i][j]为s[i]~s[j]之间的最长回文子序列
if i==j dp[i][j] = 1
else if i+1=j
if s[i] == s[j]: dp[i][j] = 2
else : dp[i][j] = 1
else
if s[i] == s[j]: dp[i][j] = max(dp[i+1][j-1]+2, dp[i+1][j], dp[i][j-1])
else: dp[i][j] = max(dp[i+1][j-1], dp[i+1][j], dp[i][j-1])
最后返回s[0][s.size()-1]即为s中最长回文子的序列结果
c++ 代码如下:
class Solution {public: int longestPalindromeSubseq(string s) { if (s.empty()) return 0; vector<vector<int>> dp(s.size(), vector<int>(s.size())); for(int len = 0; len < s.size(); len ++){ for(int i = 0; i+len < s.size(); i ++){ int j = i + len; if(i == j) dp[i][j] = 1; else if(len == 1) dp[i][j] = (s[i] == s[j] ? 2:1); else{ dp[i][j] = max(max(dp[i+1][j], dp[i][j-1]),s[i] == s[j] ? dp[i+1][j-1]+2:dp[i+1][j-1]); } } } return dp[0][s.size()-1]; }};
0 0
- Leetcode-516-Longest Palindromic Subsequence
- Leetcode 516 Longest Palindromic Subsequence
- [LeetCode]Longest Palindromic Subsequence
- LeetCode- Longest Palindromic Subsequence
- leetcode--Longest Palindromic Subsequence
- Leetcode- Longest Palindromic Subsequence
- Leetcode 516 - Longest Palindromic Subsequence(dp)
- 516 Longest Palindromic Subsequence
- 【516】 Longest Palindromic Subsequence
- 516 Longest Palindromic Subsequence
- LeetCode 516. Longest Palindromic Subsequence
- [leetcode]516. Longest Palindromic Subsequence
- leetcode 516. Longest Palindromic Subsequence
- [LeetCode]516. Longest Palindromic Subsequence
- Leetcode-516. Longest Palindromic Subsequence
- LeetCode 516. Longest Palindromic Subsequence
- leetcode-516. Longest Palindromic Subsequence
- leetcode 516. Longest Palindromic Subsequence
- 借用别人的UML图描述UML各线条和箭头关系
- 数据结构实验之二叉树五:层序遍历
- php使用反射API
- JDK 1.7 java.io 源码学习之Closeable、Flushable、Appendable接口
- BZOJ 4559 [JLoi2016]成绩比较
- Leetcode-516-Longest Palindromic Subsequence
- 开始学习Android啦!
- for循环中取索引,取到之后return直接跳出循环
- 欢迎使用CSDN-markdown编辑器
- 虚拟地址与物理地址之间的关系
- 动态加载表格
- Linux环境下tomcat的catalina.out日志按日分割生成实现
- ROS+P3DX代码注解 [ 1 ] -- RosAria_client代码注解
- 【Java基础】Java变量