码迷,mamicode.com
首页 > 其他好文 > 详细

516. Longest Palindromic Subsequence

时间:2018-04-06 16:02:40      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:连续   you   may   log   gpo   回文串   body   seq   int   

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:
4
One possible longest palindromic subsequence is "bbbb".

判断字符串中最长的回文子串,子串不一定要连续。

动态规划的方法:

1、s[i]==s[j],s[i,j]的最长子串就是s[i+1, j-1]能构成的回文串+2;

2、不相等,也就是s[i],s[j]不能同时加入子串,s[i,j]的最长子串就是s[i, j-1]或s[i+1, j]能构成的回文串

 1 class Solution {
 2 public:
 3     int longestPalindromeSubseq(string s) {
 4         int len = s.length();
 5         if (len == 0)
 6             return 0;
 7         vector<vector<int>> dp(len, vector<int>(len));
 8         for (int i=0; i<len; ++i)
 9             dp[i][i] = 1;
10         for (int i=0; i<len; ++i) 
11             for (int j=i-1; j>=0; --j) {
12                 if (s[i] == s[j]) {
13                     dp[i][j] = dp[i-1][j+1] + 2;
14                 }
15                 else {
16                     dp[i][j] = max(dp[i-1][j], dp[i][j+1]);  
17                 }
18                      
19             }
20         return dp[len-1][0];        
21     }
22 };

 

516. Longest Palindromic Subsequence

标签:连续   you   may   log   gpo   回文串   body   seq   int   

原文地址:https://www.cnblogs.com/Zzz-y/p/8727928.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!