給出乙個字串s, 求s 的最長回文子串(連續)的長度。
輸入:patzjujztaccbcc
輸出:9
最優子結構:如atzjujzta是回文子串,那麼它字串tzjujzt一定是回文子串,且長度等於tzjujzt的長度+2;
重複子問題:如求atzjujzta和tzjujzt的長度,都會用到juj的長度
狀態轉移公式:
dp[i][j] 表示從字元a[i]到a[j]的回文串長度,如果不是則為0
初始值 0
邊界:dp[i][i] = 1
dp[i][i + 1] = (s[i] = s[i + 1])? 2: 0 。
公式dp[i][j] = dp[i + 1][j - 1 ]+2, s[i]=s[j]
最優解:max(dp[0][0]…dp[n][n])
時間複雜度:o(n2)
注意迴圈條件(串長從3到n)
動態規劃 最長回文字串
題目 請從乙個已知的字串中尋找最長回文字串 解法1 動態規劃 回文字串的子串也是回文,比如p i,j 表示以i開始以j結束的子串 是回文字串,那麼p i 1,j 1 也是回文字串。這樣最長回文子串就能分解成一系列子問題了。這樣需要額外的空間o n 2 演算法複雜度也是o n 2 狀態方程和轉移方程 ...
5 最長回文子串 動態規劃
題目描述 給定乙個字串 s,找到 s 中最長的回文子串。你可以假設 s 的最大長度為 1000。示例 1 輸入 babad 輸出 bab 注意 aba 也是乙個有效答案。示例 2 輸入 cbbd 輸出 bb 方法1 中心擴散 主要思路 1 遍歷字串的每乙個位置,以該位置作為基點,向兩端進行擴充套件,...
5 最長回文子串 動態規劃)
一 題目描述 給定乙個字串 s,找到 s 中最長的回文子串。你可以假設 s 的最大長度為 1000。示例 1 輸入 babad 輸出 bab 注意 aba 也是乙個有效答案。示例 2 輸入 cbbd 輸出 bb 二 題解 方法一 動態規劃 dp i j 表示從位置i到位置j的子串是否為回文串 如果s...