最長回文子串 dp

2021-10-03 04:45:26 字數 681 閱讀 4348

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

示例 1:

輸入: 「babad」

輸出: 「bab」

注意: 「aba」 也是乙個有效答案。

示例 2:

輸入: 「cbbd」

輸出: 「bb」

題目位址

回文的主要要求是 字串從中心對稱。

例如 「aba」 「bb」 「c」 。假設 對於乙個 字串「a???a」 假定開始的位置為i ,結束位置為j

s[i] = s[j] ,滿足初步條件,但是仍然不能斷定是回文,因為中間不確定。他的狀態由 i+1 ~ j-1 這個更小範圍確定。所以 採用dp 。dp 代表 i~j 的回文狀態。所以有

dp[j][i]=dp[j+1][i-1];
按照上述思路,進行遍歷

class solution 

boolean dp =new boolean [len][len];

//單個字串肯定是回文

for(int i=0;imax)}}

}system.out.println("max is "+max);

return s.substring(start, start + max);

} }

DP 最長回文子串

dp問題,最長回文子串 最長回文子串問題指的是在乙個字串中,是回文子串的長度的最大值.這裡的回文子串是連續的.如字串 patzjujztaccbcc 他的最長回文子串是 atzjujzta 長度為9,當然它還有其他回文子串如 ccbcc 但是長度不夠長.這類問題似乎有多種解法,複雜度從o n 3 到...

最長回文子串DP

給定乙個字串 s,找到 s 中最長的回文子串。你可以假設 s 的最大長度為1000。示例 1 輸入 babad 輸出 bab 注意 aba 也是乙個有效答案。示例 2 輸入 cbbd 輸出 bb 分析 dpdp j i 表示從j到i的子串 若dp j i 為回文串,則dp j 1 i 1 必然回文,...

最長回文子串(區間dp)

輸入乙個字串str,輸出str裡最長回文子串的長度。回文串 指aba abba cccbccc aaaa這種左右對稱的字串。串的子串 乙個串的子串指此 字元 串中連續的一部分字元構成的子 字元 串 例如 abc 這個串的子串 空串 a b c ab bc abc 輸入str str的長度 1000 ...