描述:
給定乙個字串s,找到其中最長的回文子串行。可以假設s的最大長度為1000。
示例 1:
輸入:示例 2:"bbbab"
輸出:4
乙個可能的最長回文子串行為 "bbbb"。
輸入:思路:"cbbd"
輸出:2
乙個可能的最長回文子串行為 "bb"。
遍歷每個子串,從下到上構造dp陣列,dp[i][j]
表示從i到j的最長回文子串行長度。
狀態轉移方程:
當某子串s(i,j)中s[i]與s[j]相等時,那麼其頭尾兩字元一定位於其最長回文子串中,因此該子串的最長回文子串行長度等於去掉頭尾兩字元後新子串的最長回文子串行長度加二,我們可制定公式如下:dp[i][j] = dp[i + 1][j - 1] + 2。當s[i]與s[j]不相等時,則dp[i][j] = max(de[i + 1][j],dp[i][j - 1])。
class solution
}return dp[0][len-1];
}}
LeetCode 516 最長回文子串行
這題看了好久 本來以為和最長字串差不多用動態規劃設兩個列表來算但是沒什麼頭緒 後來去看了別人的解法 看了十幾分鐘才看懂 下面這種解法 1單位要單獨拿出來算 從2開始因為互文的子串行兩頭肯定是一樣的 如 aba acbca 假如能使 martix i j 等於從 s i 到 s j 所包含的最大子串行...
leetcode 516 最長回文子串行
給定乙個字串s,找到其中最長的回文子串行。可以假設s的最大長度為1000。示例 1 輸入 bbbab 輸出 4 乙個可能的最長回文子串行為 bbbb 示例 2 輸入 cbbd 輸出 2 乙個可能的最長回文子串行為 bb 解題思路 狀態 f i j 表示 s 的第 i 個字元到第 j 個字元組成的子串...
leetcode516 最長回文子串行
給定乙個字串s,找到其中最長的回文子串行。可以假設s的最大長度為1000。示例 1 輸入 bbbab 輸出 4 乙個可能的最長回文子串行為 bbbb 示例 2 輸入 cbbd 輸出 2 乙個可能的最長回文子串行為 bb f i j 表示 s 的第 i 個字元到第 j 個字元組成的子串中,最長的回文序...