Lintcode200 Longest Palindromic Substring solution 題解

【題目描述】

Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of Sis 1000, and there exists one unique longest palindromic substring.

給出一個字符串(假設(shè)長度最長為1000),求出它的最長回文子串,你可以假定只有一個滿足條件的最長回文串。

【題目鏈接】

www.lintcode.com/en/problem/longest-palindromic-substring/

【題目解析】

此題可使用區(qū)間類動態(tài)規(guī)劃。

用dp[i][j]來存DP的狀態(tài),需要較多的額外空間: Space O(n^2)

DP的4個要素

狀態(tài):

dp[i][j]: s.charAt(i)到s.charAt(j)是否構(gòu)成一個Palindrome

轉(zhuǎn)移方程:

dp[i][j] = s.charAt(i) == s.charAt(j) && (j - i <= 2 || dp[i + 1][j - 1])

初始化:

dp[i][j] = true when j - i <= 2

結(jié)果:

找maxLen = j - i + 1;,并得到相應(yīng)longest substring:longest = s.substring(i, j + 1);

【參考答案】

www.jiuzhang.com/solutions/longest-palindromic-substring/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容