leetcode 516 最長回文子串行

2021-09-26 05:16:25 字數 742 閱讀 9170

————————————————————————————————————————————

給定乙個字串s,找到其中最長的回文子串行。可以假設s的最大長度為1000。

示例 1:

輸入:「bbbab」

輸出:4

乙個可能的最長回文子串行為 「bbbb」。

示例 2:

輸入:「cbbd」

輸出:2

乙個可能的最長回文子串行為 「bb」。

————————————————————————————————————————————

解題思路:

狀態:f[i][j] 表示 s 的第 i 個字元到第 j 個字元組成的子串中,最長的回文序列長度是多少。

轉移方程:

如果 s 的第 i 個字元和第 j 個字元相同的話

f[i][j] = f[i + 1][j - 1] + 2

如果 s 的第 i 個字元和第 j 個字元不同的話

f[i][j] = max(f[i + 1][j], f[i][j - 1])

然後注意遍歷順序,i 從最後乙個字元開始往前遍歷,j 從 i + 1 開始往後遍歷,這樣可以保證每個子問題都已經算好了。

初始化f[i][i] = 1 單個字元的最長回文序列是 1

結果f[0][n - 1]

class solution 

}return dp[0][length-1];

}};

LeetCode 516 最長回文子串行

這題看了好久 本來以為和最長字串差不多用動態規劃設兩個列表來算但是沒什麼頭緒 後來去看了別人的解法 看了十幾分鐘才看懂 下面這種解法 1單位要單獨拿出來算 從2開始因為互文的子串行兩頭肯定是一樣的 如 aba acbca 假如能使 martix i j 等於從 s i 到 s j 所包含的最大子串行...

leetcode516 最長回文子串行

給定乙個字串s,找到其中最長的回文子串行。可以假設s的最大長度為1000。示例 1 輸入 bbbab 輸出 4 乙個可能的最長回文子串行為 bbbb 示例 2 輸入 cbbd 輸出 2 乙個可能的最長回文子串行為 bb f i j 表示 s 的第 i 個字元到第 j 個字元組成的子串中,最長的回文序...

Leetcode 516 最長回文子串行

描述 給定乙個字串s,找到其中最長的回文子串行。可以假設s的最大長度為1000。示例 1 輸入 bbbab 輸出 4 乙個可能的最長回文子串行為 bbbb 示例 2 輸入 cbbd 輸出 2 乙個可能的最長回文子串行為 bb 思路 遍歷每個子串,從下到上構造dp陣列,dp i j 表示從i到j的最長...