1. 程式人生 > 程式設計 >JavaScript之移動端H5生成圖片解決方案講解

JavaScript之移動端H5生成圖片解決方案講解

題目連結:https://leetcode-cn.com/problems/longest-palindromic-subsequence
題目描述:
給你一個字串 s ,找出其中最長的迴文子序列,並返回該序列的長度。
子序列定義為:不改變剩餘字元順序的情況下,刪除某些字元或者不刪除任何字元形成的一個序列。

示例 1:
輸入:s = "bbbab"
輸出:4
解釋:一個可能的最長迴文子序列為 "bbbb" 。

示例 2:
輸入:s = "cbbd"
輸出:2
解釋:一個可能的最長迴文子序列為 "bb" 。

提示:
1 <= s.length <= 1000
s 僅由小寫英文字母組成

題解:


class Solution {
public:
    int longestPalindromeSubseq(string s) {
       vector<vector<int>> dp(s.size(), vector<int>(s.size(), 0)); //dp[i]
       for(int i = 0; i < s.size();i++) dp[i][i] = 1;
       for(int i = s.size() - 1; i >= 0; i--)
       {
           for(int j = i + 1; j < s.size(); j++)
           {
                if(s[i] == s[j])
                {
                    dp[i][j] = dp[i + 1][j - 1] + 2;
                }else{
                    dp[i][j] = max(dp[i + 1][j], dp[i][j - 1]);
                }
           }
       }
       return dp[0][s.size() - 1];
    }
};